aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/MacVST
diff options
context:
space:
mode:
authorChris Johnson <jinx6568@sover.net>2019-01-27 21:13:54 -0500
committerChris Johnson <jinx6568@sover.net>2019-01-27 21:13:54 -0500
commit966f2d253cd2ee6ce140ad68095a20a9d2b63052 (patch)
treeb0400d95bd06512531ade6ddf55190a58b6a5623 /plugins/MacVST
parent0887543349dbbec0721a1fc8b1c7deba9afefa8b (diff)
downloadairwindows-lv2-port-966f2d253cd2ee6ce140ad68095a20a9d2b63052.tar.gz
airwindows-lv2-port-966f2d253cd2ee6ce140ad68095a20a9d2b63052.tar.bz2
airwindows-lv2-port-966f2d253cd2ee6ce140ad68095a20a9d2b63052.zip
Floating Point Dither For All
Diffstat (limited to 'plugins/MacVST')
-rwxr-xr-xplugins/MacVST/ADClip7/ADClip7.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/ADClip7/ADClip7.xcodeproj/christopherjohnson.perspectivev317
-rwxr-xr-xplugins/MacVST/ADClip7/source/ADClip7.cpp7
-rwxr-xr-xplugins/MacVST/ADClip7/source/ADClip7.h7
-rwxr-xr-xplugins/MacVST/ADClip7/source/ADClip7Proc.cpp64
-rwxr-xr-xplugins/MacVST/ADT/ADT.xcodeproj/christopherjohnson.pbxuser43
-rwxr-xr-xplugins/MacVST/ADT/ADT.xcodeproj/christopherjohnson.perspectivev324
-rwxr-xr-xplugins/MacVST/ADT/source/ADTProc.cpp54
-rwxr-xr-xplugins/MacVST/AQuickVoiceClip/AQuickVoiceClip.xcodeproj/christopherjohnson.pbxuser10
-rwxr-xr-xplugins/MacVST/AQuickVoiceClip/AQuickVoiceClip.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClip.cpp7
-rwxr-xr-xplugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClip.h7
-rwxr-xr-xplugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClipProc.cpp62
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/Acceleration/Acceleration.xcodeproj/christopherjohnson.pbxuser47
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/Acceleration/Acceleration.xcodeproj/christopherjohnson.perspectivev334
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/contents.xcworkspacedata0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstatebin12075 -> 12075 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstatebin10373 -> 10373 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/Acceleration/Acceleration.xcodeproj/spiadmin.mode1v30
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/Acceleration/Acceleration.xcodeproj/spiadmin.pbxuser0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme0
-rwxr-xr-xplugins/MacVST/Acceleration/source/Acceleration.cpp7
-rwxr-xr-xplugins/MacVST/Acceleration/source/Acceleration.h7
-rwxr-xr-xplugins/MacVST/Acceleration/source/AccelerationProc.cpp62
-rwxr-xr-xplugins/MacVST/Air/Air.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/Air/Air.xcodeproj/christopherjohnson.perspectivev323
-rwxr-xr-xplugins/MacVST/Air/Air.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Air/source/Air.cpp7
-rwxr-xr-xplugins/MacVST/Air/source/Air.h7
-rwxr-xr-xplugins/MacVST/Air/source/AirProc.cpp62
-rwxr-xr-xplugins/MacVST/AtmosphereBuss/AtmosphereBuss.xcodeproj/christopherjohnson.pbxuser30
-rwxr-xr-xplugins/MacVST/AtmosphereBuss/AtmosphereBuss.xcodeproj/christopherjohnson.perspectivev322
-rwxr-xr-xplugins/MacVST/AtmosphereBuss/source/AtmosphereBussProc.cpp56
-rwxr-xr-xplugins/MacVST/AtmosphereChannel/AtmosphereChannel.xcodeproj/christopherjohnson.pbxuser64
-rwxr-xr-xplugins/MacVST/AtmosphereChannel/AtmosphereChannel.xcodeproj/christopherjohnson.perspectivev342
-rwxr-xr-xplugins/MacVST/AtmosphereChannel/source/AtmosphereChannelProc.cpp56
-rwxr-xr-xplugins/MacVST/Aura/Aura.xcodeproj/christopherjohnson.pbxuser26
-rwxr-xr-xplugins/MacVST/Aura/Aura.xcodeproj/christopherjohnson.perspectivev327
-rwxr-xr-xplugins/MacVST/Aura/source/Aura.cpp7
-rwxr-xr-xplugins/MacVST/Aura/source/Aura.h7
-rwxr-xr-xplugins/MacVST/Aura/source/AuraProc.cpp62
-rwxr-xr-xplugins/MacVST/Average/Average.xcodeproj/christopherjohnson.pbxuser12
-rwxr-xr-xplugins/MacVST/Average/Average.xcodeproj/christopherjohnson.perspectivev313
-rwxr-xr-xplugins/MacVST/Average/Average.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Average/source/Average.cpp7
-rwxr-xr-xplugins/MacVST/Average/source/Average.h7
-rwxr-xr-xplugins/MacVST/Average/source/AverageProc.cpp66
-rwxr-xr-xplugins/MacVST/BassKit/BassKit.xcodeproj/christopherjohnson.pbxuser38
-rwxr-xr-xplugins/MacVST/BassKit/BassKit.xcodeproj/christopherjohnson.perspectivev364
-rwxr-xr-xplugins/MacVST/BassKit/source/BassKitProc.cpp54
-rwxr-xr-xplugins/MacVST/BitGlitter/BitGlitter.xcodeproj/christopherjohnson.pbxuser26
-rwxr-xr-xplugins/MacVST/BitGlitter/BitGlitter.xcodeproj/christopherjohnson.perspectivev324
-rwxr-xr-xplugins/MacVST/BitGlitter/source/BitGlitter.cpp3
-rwxr-xr-xplugins/MacVST/BitGlitter/source/BitGlitter.h3
-rwxr-xr-xplugins/MacVST/BitGlitter/source/BitGlitterProc.cpp19
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/christopherjohnson.pbxuser69
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/christopherjohnson.perspectivev346
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/contents.xcworkspacedata0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstatebin12075 -> 12075 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstatebin10373 -> 10373 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/spiadmin.mode1v30
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/spiadmin.pbxuser0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme0
-rwxr-xr-xplugins/MacVST/Bite/Bite.xcodeproj/christopherjohnson.pbxuser16
-rwxr-xr-xplugins/MacVST/Bite/Bite.xcodeproj/christopherjohnson.perspectivev313
-rwxr-xr-xplugins/MacVST/Bite/source/Bite.cpp7
-rwxr-xr-xplugins/MacVST/Bite/source/Bite.h7
-rwxr-xr-xplugins/MacVST/Bite/source/BiteProc.cpp62
-rwxr-xr-xplugins/MacVST/BussColors4/BussColors4.xcodeproj/christopherjohnson.pbxuser20
-rwxr-xr-xplugins/MacVST/BussColors4/BussColors4.xcodeproj/christopherjohnson.perspectivev330
-rwxr-xr-xplugins/MacVST/BussColors4/source/BussColors4.cpp22
-rwxr-xr-xplugins/MacVST/BussColors4/source/BussColors4.h7
-rwxr-xr-xplugins/MacVST/BussColors4/source/BussColors4Proc.cpp62
-rwxr-xr-xplugins/MacVST/ButterComp/ButterComp.xcodeproj/christopherjohnson.pbxuser34
-rwxr-xr-xplugins/MacVST/ButterComp/ButterComp.xcodeproj/christopherjohnson.perspectivev330
-rwxr-xr-xplugins/MacVST/ButterComp/source/ButterComp.cpp7
-rwxr-xr-xplugins/MacVST/ButterComp/source/ButterComp.h7
-rwxr-xr-xplugins/MacVST/ButterComp/source/ButterCompProc.cpp62
-rwxr-xr-xplugins/MacVST/ButterComp2/ButterComp2.xcodeproj/christopherjohnson.pbxuser42
-rwxr-xr-xplugins/MacVST/ButterComp2/ButterComp2.xcodeproj/christopherjohnson.perspectivev326
-rwxr-xr-xplugins/MacVST/ButterComp2/source/ButterComp2Proc.cpp54
-rwxr-xr-xplugins/MacVST/C5RawBuss/C5RawBuss.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/C5RawBuss/C5RawBuss.xcodeproj/christopherjohnson.perspectivev324
-rwxr-xr-xplugins/MacVST/C5RawBuss/source/C5RawBuss.cpp7
-rwxr-xr-xplugins/MacVST/C5RawBuss/source/C5RawBuss.h7
-rwxr-xr-xplugins/MacVST/C5RawBuss/source/C5RawBussProc.cpp62
-rwxr-xr-xplugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/christopherjohnson.perspectivev310
-rwxr-xr-xplugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/C5RawChannel/source/C5RawChannel.cpp7
-rwxr-xr-xplugins/MacVST/C5RawChannel/source/C5RawChannel.h7
-rwxr-xr-xplugins/MacVST/C5RawChannel/source/C5RawChannelProc.cpp62
-rwxr-xr-xplugins/MacVST/CStrip/CStrip.xcodeproj/christopherjohnson.pbxuser18
-rwxr-xr-xplugins/MacVST/CStrip/CStrip.xcodeproj/christopherjohnson.perspectivev328
-rwxr-xr-xplugins/MacVST/CStrip/source/CStrip.cpp7
-rwxr-xr-xplugins/MacVST/CStrip/source/CStrip.h7
-rwxr-xr-xplugins/MacVST/CStrip/source/CStripProc.cpp62
-rwxr-xr-xplugins/MacVST/Capacitor/Capacitor.xcodeproj/christopherjohnson.pbxuser18
-rwxr-xr-xplugins/MacVST/Capacitor/Capacitor.xcodeproj/christopherjohnson.perspectivev329
-rwxr-xr-xplugins/MacVST/Capacitor/source/Capacitor.cpp7
-rwxr-xr-xplugins/MacVST/Capacitor/source/Capacitor.h7
-rwxr-xr-xplugins/MacVST/Capacitor/source/CapacitorProc.cpp62
-rwxr-xr-xplugins/MacVST/Channel6/Channel6.xcodeproj/christopherjohnson.pbxuser43
-rwxr-xr-xplugins/MacVST/Channel6/Channel6.xcodeproj/christopherjohnson.perspectivev336
-rwxr-xr-xplugins/MacVST/Channel6/source/Channel6Proc.cpp54
-rwxr-xr-xplugins/MacVST/Chorus/Chorus.xcodeproj/christopherjohnson.pbxuser75
-rwxr-xr-xplugins/MacVST/Chorus/Chorus.xcodeproj/christopherjohnson.perspectivev336
-rwxr-xr-xplugins/MacVST/Chorus/source/Chorus.cpp7
-rwxr-xr-xplugins/MacVST/Chorus/source/Chorus.h8
-rwxr-xr-xplugins/MacVST/Chorus/source/ChorusProc.cpp62
-rwxr-xr-xplugins/MacVST/ChorusEnsemble/ChorusEnsemble.xcodeproj/christopherjohnson.pbxuser44
-rwxr-xr-xplugins/MacVST/ChorusEnsemble/ChorusEnsemble.xcodeproj/christopherjohnson.perspectivev335
-rwxr-xr-xplugins/MacVST/ChorusEnsemble/source/ChorusEnsemble.cpp7
-rwxr-xr-xplugins/MacVST/ChorusEnsemble/source/ChorusEnsemble.h7
-rwxr-xr-xplugins/MacVST/ChorusEnsemble/source/ChorusEnsembleProc.cpp64
-rwxr-xr-xplugins/MacVST/ClipOnly/ClipOnly.xcodeproj/christopherjohnson.pbxuser14
-rwxr-xr-xplugins/MacVST/ClipOnly/ClipOnly.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/Console4Buss/Console4Buss.xcodeproj/christopherjohnson.pbxuser18
-rwxr-xr-xplugins/MacVST/Console4Buss/Console4Buss.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/Console4Buss/source/Console4Buss.cpp7
-rwxr-xr-xplugins/MacVST/Console4Buss/source/Console4Buss.h7
-rwxr-xr-xplugins/MacVST/Console4Buss/source/Console4BussProc.cpp63
-rwxr-xr-xplugins/MacVST/Console4Channel/Console4Channel.xcodeproj/christopherjohnson.pbxuser18
-rwxr-xr-xplugins/MacVST/Console4Channel/Console4Channel.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/Console4Channel/source/Console4Channel.cpp7
-rwxr-xr-xplugins/MacVST/Console4Channel/source/Console4Channel.h7
-rwxr-xr-xplugins/MacVST/Console4Channel/source/Console4ChannelProc.cpp63
-rwxr-xr-xplugins/MacVST/Console5Buss/Console5Buss.xcodeproj/christopherjohnson.pbxuser26
-rwxr-xr-xplugins/MacVST/Console5Buss/Console5Buss.xcodeproj/christopherjohnson.perspectivev329
-rwxr-xr-xplugins/MacVST/Console5Buss/source/Console5Buss.cpp7
-rwxr-xr-xplugins/MacVST/Console5Buss/source/Console5Buss.h7
-rwxr-xr-xplugins/MacVST/Console5Buss/source/Console5BussProc.cpp62
-rwxr-xr-xplugins/MacVST/Console5Channel/Console5Channel.xcodeproj/christopherjohnson.pbxuser27
-rwxr-xr-xplugins/MacVST/Console5Channel/Console5Channel.xcodeproj/christopherjohnson.perspectivev332
-rwxr-xr-xplugins/MacVST/Console5Channel/source/Console5Channel.cpp7
-rwxr-xr-xplugins/MacVST/Console5Channel/source/Console5Channel.h7
-rwxr-xr-xplugins/MacVST/Console5Channel/source/Console5ChannelProc.cpp62
-rwxr-xr-xplugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/christopherjohnson.perspectivev318
-rwxr-xr-xplugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Console5DarkCh/source/Console5DarkCh.cpp7
-rwxr-xr-xplugins/MacVST/Console5DarkCh/source/Console5DarkCh.h7
-rwxr-xr-xplugins/MacVST/Console5DarkCh/source/Console5DarkChProc.cpp62
-rwxr-xr-xplugins/MacVST/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj/christopherjohnson.pbxuser34
-rwxr-xr-xplugins/MacVST/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj/christopherjohnson.perspectivev340
-rwxr-xr-xplugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWear.cpp7
-rwxr-xr-xplugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWear.h7
-rwxr-xr-xplugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWearProc.cpp62
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev331
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Crystal/source/CrystalProc.cpp54
-rwxr-xr-xplugins/MacVST/DCVoltage/DCVoltage.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/DCVoltage/DCVoltage.xcodeproj/christopherjohnson.perspectivev317
-rwxr-xr-xplugins/MacVST/DCVoltage/DCVoltage.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/DeEss/DeEss.xcodeproj/christopherjohnson.pbxuser34
-rwxr-xr-xplugins/MacVST/DeEss/DeEss.xcodeproj/christopherjohnson.perspectivev342
-rwxr-xr-xplugins/MacVST/DeEss/source/DeEssProc.cpp54
-rwxr-xr-xplugins/MacVST/DeRez/DeRez.xcodeproj/christopherjohnson.pbxuser71
-rwxr-xr-xplugins/MacVST/DeRez/DeRez.xcodeproj/christopherjohnson.perspectivev334
-rwxr-xr-xplugins/MacVST/DeRez/source/DeRez.cpp7
-rwxr-xr-xplugins/MacVST/DeRez/source/DeRez.h7
-rwxr-xr-xplugins/MacVST/DeRez/source/DeRezProc.cpp62
-rwxr-xr-xplugins/MacVST/Density/Density.xcodeproj/christopherjohnson.pbxuser72
-rwxr-xr-xplugins/MacVST/Density/Density.xcodeproj/christopherjohnson.perspectivev347
-rwxr-xr-xplugins/MacVST/Density/Density.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Density/source/Density.cpp7
-rwxr-xr-xplugins/MacVST/Density/source/Density.h9
-rwxr-xr-xplugins/MacVST/Density/source/DensityProc.cpp64
-rwxr-xr-xplugins/MacVST/Desk/Desk.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/Desk/Desk.xcodeproj/christopherjohnson.perspectivev317
-rwxr-xr-xplugins/MacVST/Desk/Desk.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Desk/source/Desk.cpp7
-rwxr-xr-xplugins/MacVST/Desk/source/Desk.h7
-rwxr-xr-xplugins/MacVST/Desk/source/DeskProc.cpp62
-rwxr-xr-xplugins/MacVST/Desk4/Desk4.xcodeproj/christopherjohnson.pbxuser4
-rwxr-xr-xplugins/MacVST/Desk4/Desk4.xcodeproj/christopherjohnson.perspectivev39
-rwxr-xr-xplugins/MacVST/Desk4/source/Desk4.cpp7
-rwxr-xr-xplugins/MacVST/Desk4/source/Desk4.h7
-rwxr-xr-xplugins/MacVST/Desk4/source/Desk4Proc.cpp62
-rwxr-xr-xplugins/MacVST/Distance/Distance.xcodeproj/christopherjohnson.pbxuser60
-rwxr-xr-xplugins/MacVST/Distance/Distance.xcodeproj/christopherjohnson.perspectivev327
-rwxr-xr-xplugins/MacVST/Distance/source/Distance.cpp7
-rwxr-xr-xplugins/MacVST/Distance/source/Distance.h7
-rwxr-xr-xplugins/MacVST/Distance/source/DistanceProc.cpp62
-rwxr-xr-xplugins/MacVST/Distance2/Distance2.xcodeproj/christopherjohnson.pbxuser41
-rwxr-xr-xplugins/MacVST/Distance2/Distance2.xcodeproj/christopherjohnson.perspectivev332
-rwxr-xr-xplugins/MacVST/Distance2/source/Distance2Proc.cpp54
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/christopherjohnson.pbxuser131
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/christopherjohnson.perspectivev31508
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.pbxproj2201
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/contents.xcworkspacedata7
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstatebin0 -> 12075 bytes
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstatebin0 -> 10373 bytes
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/spiadmin.mode1v31372
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/spiadmin.pbxuser143
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme80
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist22
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist22
-rwxr-xr-xplugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme57
-rwxr-xr-xplugins/MacVST/DitherFloat/mac/Info.plist24
-rwxr-xr-xplugins/MacVST/DitherFloat/mac/PkgInfo1
-rwxr-xr-xplugins/MacVST/DitherFloat/mac/xcode_vst_prefix.h17
-rwxr-xr-xplugins/MacVST/DitherFloat/source/DitherFloat.cpp127
-rwxr-xr-xplugins/MacVST/DitherFloat/source/DitherFloat.h64
-rwxr-xr-xplugins/MacVST/DitherFloat/source/DitherFloatProc.cpp184
-rwxr-xr-xplugins/MacVST/DitherMeDiskers/DitherMeDiskers.xcodeproj/christopherjohnson.pbxuser16
-rwxr-xr-xplugins/MacVST/DitherMeDiskers/DitherMeDiskers.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/DitherMeTimbers/DitherMeTimbers.xcodeproj/christopherjohnson.pbxuser32
-rwxr-xr-xplugins/MacVST/DitherMeTimbers/DitherMeTimbers.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/Ditherbox/Ditherbox.xcodeproj/christopherjohnson.pbxuser18
-rwxr-xr-xplugins/MacVST/Ditherbox/Ditherbox.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/DoublePaul/DoublePaul.xcodeproj/christopherjohnson.pbxuser47
-rwxr-xr-xplugins/MacVST/DoublePaul/DoublePaul.xcodeproj/christopherjohnson.perspectivev334
-rwxr-xr-xplugins/MacVST/Drive/Drive.xcodeproj/christopherjohnson.pbxuser77
-rwxr-xr-xplugins/MacVST/Drive/Drive.xcodeproj/christopherjohnson.perspectivev336
-rwxr-xr-xplugins/MacVST/Drive/source/Drive.cpp7
-rwxr-xr-xplugins/MacVST/Drive/source/Drive.h9
-rwxr-xr-xplugins/MacVST/Drive/source/DriveProc.cpp64
-rwxr-xr-xplugins/MacVST/DrumSlam/DrumSlam.xcodeproj/christopherjohnson.pbxuser16
-rwxr-xr-xplugins/MacVST/DrumSlam/DrumSlam.xcodeproj/christopherjohnson.perspectivev323
-rwxr-xr-xplugins/MacVST/DrumSlam/source/DrumSlam.cpp7
-rwxr-xr-xplugins/MacVST/DrumSlam/source/DrumSlam.h9
-rwxr-xr-xplugins/MacVST/DrumSlam/source/DrumSlamProc.cpp66
-rwxr-xr-xplugins/MacVST/DubCenter/DubCenter.xcodeproj/christopherjohnson.pbxuser26
-rwxr-xr-xplugins/MacVST/DubCenter/DubCenter.xcodeproj/christopherjohnson.perspectivev352
-rwxr-xr-xplugins/MacVST/DubCenter/source/DubCenterProc.cpp54
-rwxr-xr-xplugins/MacVST/DubSub/DubSub.xcodeproj/christopherjohnson.pbxuser76
-rwxr-xr-xplugins/MacVST/DubSub/DubSub.xcodeproj/christopherjohnson.perspectivev338
-rwxr-xr-xplugins/MacVST/DubSub/source/DubSubProc.cpp54
-rwxr-xr-xplugins/MacVST/DustBunny/DustBunny.xcodeproj/christopherjohnson.pbxuser16
-rwxr-xr-xplugins/MacVST/DustBunny/DustBunny.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/EQ/EQ.xcodeproj/christopherjohnson.pbxuser27
-rwxr-xr-xplugins/MacVST/EQ/EQ.xcodeproj/christopherjohnson.perspectivev329
-rwxr-xr-xplugins/MacVST/EQ/source/EQ.cpp7
-rwxr-xr-xplugins/MacVST/EQ/source/EQ.h7
-rwxr-xr-xplugins/MacVST/EQ/source/EQProc.cpp62
-rwxr-xr-xplugins/MacVST/EdIsDim/EdIsDim.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/EdIsDim/EdIsDim.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/EdIsDim/source/EdIsDim.cpp7
-rwxr-xr-xplugins/MacVST/EdIsDim/source/EdIsDim.h7
-rwxr-xr-xplugins/MacVST/EdIsDim/source/EdIsDimProc.cpp62
-rwxr-xr-xplugins/MacVST/ElectroHat/ElectroHat.xcodeproj/christopherjohnson.pbxuser46
-rwxr-xr-xplugins/MacVST/ElectroHat/ElectroHat.xcodeproj/christopherjohnson.perspectivev364
-rwxr-xr-xplugins/MacVST/ElectroHat/source/ElectroHat.cpp7
-rwxr-xr-xplugins/MacVST/ElectroHat/source/ElectroHat.h7
-rwxr-xr-xplugins/MacVST/ElectroHat/source/ElectroHatProc.cpp62
-rwxr-xr-xplugins/MacVST/Energy/Energy.xcodeproj/christopherjohnson.pbxuser28
-rwxr-xr-xplugins/MacVST/Energy/Energy.xcodeproj/christopherjohnson.perspectivev360
-rwxr-xr-xplugins/MacVST/Energy/Energy.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Energy/source/EnergyProc.cpp54
-rwxr-xr-xplugins/MacVST/Ensemble/Ensemble.xcodeproj/christopherjohnson.pbxuser37
-rwxr-xr-xplugins/MacVST/Ensemble/Ensemble.xcodeproj/christopherjohnson.perspectivev337
-rwxr-xr-xplugins/MacVST/Ensemble/source/Ensemble.cpp7
-rwxr-xr-xplugins/MacVST/Ensemble/source/Ensemble.h9
-rwxr-xr-xplugins/MacVST/Ensemble/source/EnsembleProc.cpp66
-rwxr-xr-xplugins/MacVST/EveryTrim/EveryTrim.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/EveryTrim/EveryTrim.xcodeproj/christopherjohnson.perspectivev317
-rwxr-xr-xplugins/MacVST/EveryTrim/EveryTrim.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/EveryTrim/source/EveryTrim.cpp7
-rwxr-xr-xplugins/MacVST/EveryTrim/source/EveryTrim.h7
-rwxr-xr-xplugins/MacVST/EveryTrim/source/EveryTrimProc.cpp62
-rwxr-xr-xplugins/MacVST/FathomFive/FathomFive.xcodeproj/christopherjohnson.pbxuser16
-rwxr-xr-xplugins/MacVST/FathomFive/FathomFive.xcodeproj/christopherjohnson.perspectivev329
-rwxr-xr-xplugins/MacVST/FathomFive/source/FathomFive.cpp10
-rwxr-xr-xplugins/MacVST/Floor/Floor.xcodeproj/christopherjohnson.pbxuser16
-rwxr-xr-xplugins/MacVST/Floor/Floor.xcodeproj/christopherjohnson.perspectivev332
-rwxr-xr-xplugins/MacVST/Floor/source/FloorProc.cpp54
-rwxr-xr-xplugins/MacVST/Fracture/Fracture.xcodeproj/christopherjohnson.pbxuser4
-rwxr-xr-xplugins/MacVST/Fracture/Fracture.xcodeproj/christopherjohnson.perspectivev313
-rwxr-xr-xplugins/MacVST/Fracture/source/Fracture.cpp7
-rwxr-xr-xplugins/MacVST/Fracture/source/Fracture.h7
-rwxr-xr-xplugins/MacVST/Fracture/source/FractureProc.cpp62
-rwxr-xr-xplugins/MacVST/FromTape/FromTape.xcodeproj/christopherjohnson.pbxuser34
-rwxr-xr-xplugins/MacVST/FromTape/FromTape.xcodeproj/christopherjohnson.perspectivev352
-rwxr-xr-xplugins/MacVST/FromTape/FromTape.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/FromTape/source/FromTape.cpp7
-rwxr-xr-xplugins/MacVST/FromTape/source/FromTape.h7
-rwxr-xr-xplugins/MacVST/FromTape/source/FromTapeProc.cpp62
-rwxr-xr-xplugins/MacVST/Gatelope/Gatelope.xcodeproj/christopherjohnson.pbxuser16
-rwxr-xr-xplugins/MacVST/Gatelope/Gatelope.xcodeproj/christopherjohnson.perspectivev328
-rwxr-xr-xplugins/MacVST/Gatelope/source/GatelopeProc.cpp54
-rwxr-xr-xplugins/MacVST/Golem/Golem.xcodeproj/christopherjohnson.pbxuser40
-rwxr-xr-xplugins/MacVST/Golem/Golem.xcodeproj/christopherjohnson.perspectivev332
-rwxr-xr-xplugins/MacVST/Golem/source/Golem.cpp6
-rwxr-xr-xplugins/MacVST/Golem/source/Golem.h6
-rwxr-xr-xplugins/MacVST/Golem/source/GolemProc.cpp62
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/christopherjohnson.pbxuser26
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/christopherjohnson.perspectivev318
-rwxr-xr-xplugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.pbxproj4
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/contents.xcworkspacedata0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstatebin12075 -> 12075 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstatebin10373 -> 10373 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/spiadmin.mode1v30
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/spiadmin.pbxuser0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme0
-rwxr-xr-xplugins/MacVST/GrooveWear/source/GrooveWear.cpp7
-rwxr-xr-xplugins/MacVST/GrooveWear/source/GrooveWear.h7
-rwxr-xr-xplugins/MacVST/GrooveWear/source/GrooveWearProc.cpp62
-rwxr-xr-xplugins/MacVST/GuitarConditioner/GuitarConditioner.xcodeproj/christopherjohnson.pbxuser24
-rwxr-xr-xplugins/MacVST/GuitarConditioner/GuitarConditioner.xcodeproj/christopherjohnson.perspectivev330
-rwxr-xr-xplugins/MacVST/GuitarConditioner/source/GuitarConditioner.cpp7
-rwxr-xr-xplugins/MacVST/GuitarConditioner/source/GuitarConditioner.h9
-rwxr-xr-xplugins/MacVST/GuitarConditioner/source/GuitarConditionerProc.cpp67
-rwxr-xr-xplugins/MacVST/HardVacuum/HardVacuum.xcodeproj/christopherjohnson.pbxuser27
-rwxr-xr-xplugins/MacVST/HardVacuum/HardVacuum.xcodeproj/christopherjohnson.perspectivev328
-rwxr-xr-xplugins/MacVST/HardVacuum/source/HardVacuum.cpp7
-rwxr-xr-xplugins/MacVST/HardVacuum/source/HardVacuum.h7
-rwxr-xr-xplugins/MacVST/HardVacuum/source/HardVacuumProc.cpp62
-rwxr-xr-xplugins/MacVST/HermeTrim/HermeTrim.xcodeproj/christopherjohnson.pbxuser23
-rwxr-xr-xplugins/MacVST/HermeTrim/HermeTrim.xcodeproj/christopherjohnson.perspectivev328
-rwxr-xr-xplugins/MacVST/HermeTrim/source/HermeTrim.cpp7
-rwxr-xr-xplugins/MacVST/HermeTrim/source/HermeTrim.h7
-rwxr-xr-xplugins/MacVST/HermeTrim/source/HermeTrimProc.cpp62
-rwxr-xr-xplugins/MacVST/Hermepass/Hermepass.xcodeproj/christopherjohnson.pbxuser30
-rwxr-xr-xplugins/MacVST/Hermepass/Hermepass.xcodeproj/christopherjohnson.perspectivev335
-rwxr-xr-xplugins/MacVST/Hermepass/source/Hermepass.cpp7
-rwxr-xr-xplugins/MacVST/Hermepass/source/Hermepass.h9
-rwxr-xr-xplugins/MacVST/Hermepass/source/HermepassProc.cpp66
-rwxr-xr-xplugins/MacVST/HighImpact/HighImpact.xcodeproj/christopherjohnson.pbxuser4
-rwxr-xr-xplugins/MacVST/HighImpact/HighImpact.xcodeproj/christopherjohnson.perspectivev39
-rwxr-xr-xplugins/MacVST/HighImpact/source/HighImpact.cpp7
-rwxr-xr-xplugins/MacVST/HighImpact/source/HighImpact.h7
-rwxr-xr-xplugins/MacVST/HighImpact/source/HighImpactProc.cpp62
-rwxr-xr-xplugins/MacVST/Highpass/Highpass.xcodeproj/christopherjohnson.pbxuser30
-rwxr-xr-xplugins/MacVST/Highpass/Highpass.xcodeproj/christopherjohnson.perspectivev329
-rwxr-xr-xplugins/MacVST/Highpass/source/Highpass.cpp6
-rwxr-xr-xplugins/MacVST/Highpass/source/Highpass.h9
-rwxr-xr-xplugins/MacVST/Highpass/source/HighpassProc.cpp68
-rwxr-xr-xplugins/MacVST/Hombre/Hombre.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/Hombre/Hombre.xcodeproj/christopherjohnson.perspectivev39
-rwxr-xr-xplugins/MacVST/Hombre/Hombre.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Hombre/source/Hombre.cpp7
-rwxr-xr-xplugins/MacVST/Hombre/source/Hombre.h7
-rwxr-xr-xplugins/MacVST/Hombre/source/HombreProc.cpp62
-rwxr-xr-xplugins/MacVST/IronOxide5/IronOxide5.xcodeproj/christopherjohnson.pbxuser18
-rwxr-xr-xplugins/MacVST/IronOxide5/IronOxide5.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/IronOxide5/source/IronOxide5.cpp7
-rwxr-xr-xplugins/MacVST/IronOxide5/source/IronOxide5.h7
-rwxr-xr-xplugins/MacVST/IronOxide5/source/IronOxide5Proc.cpp62
-rwxr-xr-xplugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/christopherjohnson.pbxuser20
-rwxr-xr-xplugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/christopherjohnson.perspectivev325
-rwxr-xr-xplugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/IronOxideClassic/source/IronOxideClassic.cpp7
-rwxr-xr-xplugins/MacVST/IronOxideClassic/source/IronOxideClassic.h7
-rwxr-xr-xplugins/MacVST/IronOxideClassic/source/IronOxideClassicProc.cpp64
-rwxr-xr-xplugins/MacVST/Logical4/Logical4.xcodeproj/christopherjohnson.pbxuser26
-rwxr-xr-xplugins/MacVST/Logical4/Logical4.xcodeproj/christopherjohnson.perspectivev327
-rwxr-xr-xplugins/MacVST/Logical4/source/Logical4.cpp7
-rwxr-xr-xplugins/MacVST/Logical4/source/Logical4.h6
-rwxr-xr-xplugins/MacVST/Logical4/source/Logical4Proc.cpp68
-rwxr-xr-xplugins/MacVST/Loud/Loud.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/Loud/Loud.xcodeproj/christopherjohnson.perspectivev313
-rwxr-xr-xplugins/MacVST/Loud/source/Loud.cpp7
-rwxr-xr-xplugins/MacVST/Loud/source/Loud.h7
-rwxr-xr-xplugins/MacVST/Loud/source/LoudProc.cpp62
-rwxr-xr-xplugins/MacVST/Lowpass/Lowpass.xcodeproj/christopherjohnson.pbxuser42
-rwxr-xr-xplugins/MacVST/Lowpass/Lowpass.xcodeproj/christopherjohnson.perspectivev330
-rwxr-xr-xplugins/MacVST/Lowpass/source/Lowpass.cpp6
-rwxr-xr-xplugins/MacVST/Lowpass/source/Lowpass.h9
-rwxr-xr-xplugins/MacVST/Lowpass/source/LowpassProc.cpp68
-rwxr-xr-xplugins/MacVST/Melt/Melt.xcodeproj/christopherjohnson.pbxuser12
-rwxr-xr-xplugins/MacVST/Melt/Melt.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/Melt/source/Melt.cpp7
-rwxr-xr-xplugins/MacVST/Melt/source/Melt.h7
-rwxr-xr-xplugins/MacVST/Melt/source/MeltProc.cpp62
-rwxr-xr-xplugins/MacVST/MidSide/MidSide.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/MidSide/MidSide.xcodeproj/christopherjohnson.perspectivev313
-rwxr-xr-xplugins/MacVST/MidSide/source/MidSide.cpp7
-rwxr-xr-xplugins/MacVST/MidSide/source/MidSide.h7
-rwxr-xr-xplugins/MacVST/MidSide/source/MidSideProc.cpp62
-rwxr-xr-xplugins/MacVST/NCSeventeen/NCSeventeen.xcodeproj/christopherjohnson.pbxuser48
-rwxr-xr-xplugins/MacVST/NCSeventeen/NCSeventeen.xcodeproj/christopherjohnson.perspectivev364
-rwxr-xr-xplugins/MacVST/NCSeventeen/source/NCSeventeen.cpp7
-rwxr-xr-xplugins/MacVST/NCSeventeen/source/NCSeventeen.h7
-rwxr-xr-xplugins/MacVST/NCSeventeen/source/NCSeventeenProc.cpp62
-rwxr-xr-xplugins/MacVST/Noise/Noise.xcodeproj/christopherjohnson.pbxuser16
-rwxr-xr-xplugins/MacVST/Noise/Noise.xcodeproj/christopherjohnson.perspectivev320
-rwxr-xr-xplugins/MacVST/Noise/source/Noise.cpp7
-rwxr-xr-xplugins/MacVST/Noise/source/Noise.h7
-rwxr-xr-xplugins/MacVST/Noise/source/NoiseProc.cpp62
-rwxr-xr-xplugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/christopherjohnson.perspectivev38
-rwxr-xr-xplugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/NonlinearSpace/source/NonlinearSpace.cpp7
-rwxr-xr-xplugins/MacVST/NonlinearSpace/source/NonlinearSpace.h7
-rwxr-xr-xplugins/MacVST/NonlinearSpace/source/NonlinearSpaceProc.cpp62
-rwxr-xr-xplugins/MacVST/NotJustAnotherDither/NotJustAnotherDither.xcodeproj/christopherjohnson.pbxuser26
-rwxr-xr-xplugins/MacVST/NotJustAnotherDither/NotJustAnotherDither.xcodeproj/christopherjohnson.perspectivev330
-rwxr-xr-xplugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/christopherjohnson.perspectivev318
-rwxr-xr-xplugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/OneCornerClip/source/OneCornerClip.cpp7
-rwxr-xr-xplugins/MacVST/OneCornerClip/source/OneCornerClip.h7
-rwxr-xr-xplugins/MacVST/OneCornerClip/source/OneCornerClipProc.cpp62
-rwxr-xr-xplugins/MacVST/PDBuss/PDBuss.xcodeproj/christopherjohnson.pbxuser20
-rwxr-xr-xplugins/MacVST/PDBuss/PDBuss.xcodeproj/christopherjohnson.perspectivev326
-rwxr-xr-xplugins/MacVST/PDBuss/source/PDBuss.cpp7
-rwxr-xr-xplugins/MacVST/PDBuss/source/PDBuss.h7
-rwxr-xr-xplugins/MacVST/PDBuss/source/PDBussProc.cpp62
-rwxr-xr-xplugins/MacVST/PDChannel/PDChannel.xcodeproj/christopherjohnson.pbxuser29
-rwxr-xr-xplugins/MacVST/PDChannel/PDChannel.xcodeproj/christopherjohnson.perspectivev328
-rwxr-xr-xplugins/MacVST/PDChannel/source/PDChannel.cpp7
-rwxr-xr-xplugins/MacVST/PDChannel/source/PDChannel.h7
-rwxr-xr-xplugins/MacVST/PDChannel/source/PDChannelProc.cpp62
-rwxr-xr-xplugins/MacVST/PhaseNudge/PhaseNudge.xcodeproj/christopherjohnson.pbxuser10
-rwxr-xr-xplugins/MacVST/PhaseNudge/PhaseNudge.xcodeproj/christopherjohnson.perspectivev313
-rwxr-xr-xplugins/MacVST/PhaseNudge/source/PhaseNudge.cpp7
-rwxr-xr-xplugins/MacVST/PhaseNudge/source/PhaseNudge.h7
-rwxr-xr-xplugins/MacVST/PhaseNudge/source/PhaseNudgeProc.cpp62
-rwxr-xr-xplugins/MacVST/Point/Point.xcodeproj/christopherjohnson.pbxuser26
-rwxr-xr-xplugins/MacVST/Point/Point.xcodeproj/christopherjohnson.perspectivev329
-rwxr-xr-xplugins/MacVST/Point/source/Point.cpp6
-rwxr-xr-xplugins/MacVST/Point/source/Point.h6
-rwxr-xr-xplugins/MacVST/Point/source/PointProc.cpp64
-rwxr-xr-xplugins/MacVST/Pop/Pop.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/Pop/Pop.xcodeproj/christopherjohnson.perspectivev311
-rwxr-xr-xplugins/MacVST/Pop/Pop.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Pop/source/PopProc.cpp54
-rwxr-xr-xplugins/MacVST/PowerSag/PowerSag.xcodeproj/christopherjohnson.pbxuser12
-rwxr-xr-xplugins/MacVST/PowerSag/PowerSag.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/PowerSag/source/PowerSag.cpp7
-rwxr-xr-xplugins/MacVST/PowerSag/source/PowerSag.h7
-rwxr-xr-xplugins/MacVST/PowerSag/source/PowerSagProc.cpp62
-rwxr-xr-xplugins/MacVST/Pressure4/Pressure4.xcodeproj/christopherjohnson.pbxuser26
-rwxr-xr-xplugins/MacVST/Pressure4/Pressure4.xcodeproj/christopherjohnson.perspectivev329
-rwxr-xr-xplugins/MacVST/Pressure4/source/Pressure4.cpp6
-rwxr-xr-xplugins/MacVST/Pressure4/source/Pressure4.h6
-rwxr-xr-xplugins/MacVST/Pressure4/source/Pressure4Proc.cpp66
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/christopherjohnson.pbxuser23
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/christopherjohnson.perspectivev329
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/contents.xcworkspacedata0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstatebin12075 -> 12075 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstatebin10373 -> 10373 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/spiadmin.mode1v30
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/spiadmin.pbxuser0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme0
-rwxr-xr-xplugins/MacVST/PurestConsoleBuss/source/PurestConsoleBuss.cpp7
-rwxr-xr-xplugins/MacVST/PurestConsoleBuss/source/PurestConsoleBuss.h7
-rwxr-xr-xplugins/MacVST/PurestConsoleBuss/source/PurestConsoleBussProc.cpp62
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/christopherjohnson.pbxuser48
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/christopherjohnson.perspectivev376
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/contents.xcworkspacedata0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstatebin12075 -> 12075 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstatebin10373 -> 10373 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/spiadmin.mode1v30
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/spiadmin.pbxuser0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme0
-rwxr-xr-xplugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannel.cpp7
-rwxr-xr-xplugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannel.h7
-rwxr-xr-xplugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannelProc.cpp62
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/christopherjohnson.perspectivev310
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/contents.xcworkspacedata0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstatebin12075 -> 12075 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstatebin10373 -> 10373 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/spiadmin.mode1v30
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/spiadmin.pbxuser0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme0
-rwxr-xr-xplugins/MacVST/PurestDrive/source/PurestDrive.cpp7
-rwxr-xr-xplugins/MacVST/PurestDrive/source/PurestDrive.h7
-rwxr-xr-xplugins/MacVST/PurestDrive/source/PurestDriveProc.cpp62
-rwxr-xr-xplugins/MacVST/PurestEcho/PurestEcho.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/PurestEcho/PurestEcho.xcodeproj/christopherjohnson.perspectivev317
-rwxr-xr-xplugins/MacVST/PurestEcho/PurestEcho.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/PurestEcho/source/PurestEcho.cpp7
-rwxr-xr-xplugins/MacVST/PurestEcho/source/PurestEcho.h7
-rwxr-xr-xplugins/MacVST/PurestEcho/source/PurestEchoProc.cpp62
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestGain/PurestGain.xcodeproj/christopherjohnson.pbxuser14
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestGain/PurestGain.xcodeproj/christopherjohnson.perspectivev319
-rwxr-xr-xplugins/MacVST/PurestGain/PurestGain.xcodeproj/project.pbxproj4
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/contents.xcworkspacedata0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstatebin12075 -> 12075 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstatebin10373 -> 10373 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestGain/PurestGain.xcodeproj/spiadmin.mode1v30
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestGain/PurestGain.xcodeproj/spiadmin.pbxuser0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme0
-rwxr-xr-xplugins/MacVST/PurestGain/source/PurestGain.cpp7
-rwxr-xr-xplugins/MacVST/PurestGain/source/PurestGain.h7
-rwxr-xr-xplugins/MacVST/PurestGain/source/PurestGainProc.cpp92
-rwxr-xr-xplugins/MacVST/PurestWarm/PurestWarm.xcodeproj/christopherjohnson.pbxuser24
-rwxr-xr-xplugins/MacVST/PurestWarm/PurestWarm.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/PurestWarm/source/PurestWarm.cpp7
-rwxr-xr-xplugins/MacVST/PurestWarm/source/PurestWarm.h7
-rwxr-xr-xplugins/MacVST/PurestWarm/source/PurestWarmProc.cpp242
-rwxr-xr-xplugins/MacVST/Pyewacket/Pyewacket.xcodeproj/christopherjohnson.pbxuser4
-rwxr-xr-xplugins/MacVST/Pyewacket/Pyewacket.xcodeproj/christopherjohnson.perspectivev317
-rwxr-xr-xplugins/MacVST/Pyewacket/source/Pyewacket.cpp7
-rwxr-xr-xplugins/MacVST/Pyewacket/source/Pyewacket.h7
-rwxr-xr-xplugins/MacVST/Pyewacket/source/PyewacketProc.cpp62
-rwxr-xr-xplugins/MacVST/Righteous4/Righteous4.xcodeproj/christopherjohnson.pbxuser14
-rwxr-xr-xplugins/MacVST/Righteous4/Righteous4.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/Righteous4/source/Righteous4Proc.cpp56
-rwxr-xr-xplugins/MacVST/SideDull/SideDull.xcodeproj/christopherjohnson.pbxuser24
-rwxr-xr-xplugins/MacVST/SideDull/SideDull.xcodeproj/christopherjohnson.perspectivev315
-rwxr-xr-xplugins/MacVST/SideDull/SideDull.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/SideDull/source/SideDull.cpp6
-rwxr-xr-xplugins/MacVST/SideDull/source/SideDull.h6
-rwxr-xr-xplugins/MacVST/SideDull/source/SideDullProc.cpp66
-rwxr-xr-xplugins/MacVST/Sidepass/Sidepass.xcodeproj/christopherjohnson.pbxuser24
-rwxr-xr-xplugins/MacVST/Sidepass/Sidepass.xcodeproj/christopherjohnson.perspectivev323
-rwxr-xr-xplugins/MacVST/Sidepass/source/Sidepass.cpp6
-rwxr-xr-xplugins/MacVST/Sidepass/source/Sidepass.h6
-rwxr-xr-xplugins/MacVST/Sidepass/source/SidepassProc.cpp62
-rwxr-xr-xplugins/MacVST/SingleEndedTriode/SingleEndedTriode.xcodeproj/christopherjohnson.pbxuser43
-rwxr-xr-xplugins/MacVST/SingleEndedTriode/SingleEndedTriode.xcodeproj/christopherjohnson.perspectivev377
-rwxr-xr-xplugins/MacVST/SingleEndedTriode/source/SingleEndedTriodeProc.cpp54
-rwxr-xr-xplugins/MacVST/Slew/Slew.xcodeproj/christopherjohnson.pbxuser16
-rwxr-xr-xplugins/MacVST/Slew/Slew.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/Slew2/Slew2.xcodeproj/christopherjohnson.pbxuser4
-rwxr-xr-xplugins/MacVST/Slew2/Slew2.xcodeproj/christopherjohnson.perspectivev313
-rwxr-xr-xplugins/MacVST/SlewOnly/SlewOnly.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/SlewOnly/SlewOnly.xcodeproj/christopherjohnson.perspectivev317
-rwxr-xr-xplugins/MacVST/SlewOnly/SlewOnly.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Spiral/Spiral.xcodeproj/christopherjohnson.pbxuser20
-rwxr-xr-xplugins/MacVST/Spiral/Spiral.xcodeproj/christopherjohnson.perspectivev333
-rwxr-xr-xplugins/MacVST/Spiral/source/SpiralProc.cpp54
-rwxr-xr-xplugins/MacVST/Spiral2/Spiral2.xcodeproj/christopherjohnson.pbxuser43
-rwxr-xr-xplugins/MacVST/Spiral2/Spiral2.xcodeproj/christopherjohnson.perspectivev338
-rwxr-xr-xplugins/MacVST/Spiral2/source/Spiral2Proc.cpp54
-rwxr-xr-xplugins/MacVST/StarChild/StarChild.xcodeproj/christopherjohnson.pbxuser12
-rwxr-xr-xplugins/MacVST/StarChild/StarChild.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/StarChild/source/StarChild.cpp7
-rwxr-xr-xplugins/MacVST/StarChild/source/StarChild.h7
-rwxr-xr-xplugins/MacVST/StarChild/source/StarChildProc.cpp62
-rwxr-xr-xplugins/MacVST/StereoFX/StereoFX.xcodeproj/christopherjohnson.pbxuser16
-rwxr-xr-xplugins/MacVST/StereoFX/StereoFX.xcodeproj/christopherjohnson.perspectivev324
-rwxr-xr-xplugins/MacVST/StereoFX/source/StereoFX.cpp6
-rwxr-xr-xplugins/MacVST/StereoFX/source/StereoFX.h6
-rwxr-xr-xplugins/MacVST/StereoFX/source/StereoFXProc.cpp62
-rwxr-xr-xplugins/MacVST/SubsOnly/SubsOnly.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/SubsOnly/SubsOnly.xcodeproj/christopherjohnson.perspectivev317
-rwxr-xr-xplugins/MacVST/SubsOnly/SubsOnly.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Surge/Surge.xcodeproj/christopherjohnson.pbxuser20
-rwxr-xr-xplugins/MacVST/Surge/Surge.xcodeproj/christopherjohnson.perspectivev318
-rwxr-xr-xplugins/MacVST/Surge/Surge.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Surge/source/Surge.cpp6
-rwxr-xr-xplugins/MacVST/Surge/source/Surge.h6
-rwxr-xr-xplugins/MacVST/Surge/source/SurgeProc.cpp66
-rwxr-xr-xplugins/MacVST/SurgeTide/SurgeTide.xcodeproj/christopherjohnson.pbxuser22
-rwxr-xr-xplugins/MacVST/SurgeTide/SurgeTide.xcodeproj/christopherjohnson.perspectivev330
-rwxr-xr-xplugins/MacVST/SurgeTide/source/SurgeTide.cpp6
-rwxr-xr-xplugins/MacVST/SurgeTide/source/SurgeTide.h6
-rwxr-xr-xplugins/MacVST/SurgeTide/source/SurgeTideProc.cpp66
-rwxr-xr-xplugins/MacVST/Swell/Swell.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/Swell/Swell.xcodeproj/christopherjohnson.perspectivev310
-rwxr-xr-xplugins/MacVST/Swell/Swell.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/Swell/source/Swell.cpp7
-rwxr-xr-xplugins/MacVST/Swell/source/Swell.h7
-rwxr-xr-xplugins/MacVST/Swell/source/SwellProc.cpp62
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/christopherjohnson.pbxuser0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/christopherjohnson.perspectivev30
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/contents.xcworkspacedata0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstatebin12075 -> 12075 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstatebin10373 -> 10373 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/spiadmin.mode1v30
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/spiadmin.pbxuser0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme0
-rwxr-xr-xplugins/MacVST/TapeDelay/TapeDelay.xcodeproj/christopherjohnson.pbxuser16
-rwxr-xr-xplugins/MacVST/TapeDelay/TapeDelay.xcodeproj/christopherjohnson.perspectivev328
-rwxr-xr-xplugins/MacVST/TapeDelay/source/TapeDelayProc.cpp54
-rwxr-xr-xplugins/MacVST/TapeDither/TapeDither.xcodeproj/christopherjohnson.pbxuser32
-rwxr-xr-xplugins/MacVST/TapeDither/TapeDither.xcodeproj/christopherjohnson.perspectivev330
-rwxr-xr-xplugins/MacVST/TapeDither/TapeDither.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/TapeDust/TapeDust.xcodeproj/christopherjohnson.pbxuser26
-rwxr-xr-xplugins/MacVST/TapeDust/TapeDust.xcodeproj/christopherjohnson.perspectivev323
-rwxr-xr-xplugins/MacVST/TapeDust/TapeDust.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/TapeDust/source/TapeDust.cpp6
-rwxr-xr-xplugins/MacVST/TapeDust/source/TapeDust.h6
-rwxr-xr-xplugins/MacVST/TapeDust/source/TapeDustProc.cpp64
-rwxr-xr-xplugins/MacVST/TapeFat/TapeFat.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/TapeFat/TapeFat.xcodeproj/christopherjohnson.perspectivev317
-rwxr-xr-xplugins/MacVST/TapeFat/TapeFat.xcodeproj/project.pbxproj4
-rwxr-xr-xplugins/MacVST/TapeFat/source/TapeFatProc.cpp54
-rwxr-xr-xplugins/MacVST/Thunder/Thunder.xcodeproj/christopherjohnson.pbxuser35
-rwxr-xr-xplugins/MacVST/Thunder/Thunder.xcodeproj/christopherjohnson.perspectivev330
-rwxr-xr-xplugins/MacVST/Thunder/source/Thunder.cpp6
-rwxr-xr-xplugins/MacVST/Thunder/source/Thunder.h6
-rwxr-xr-xplugins/MacVST/Thunder/source/ThunderProc.cpp66
-rwxr-xr-xplugins/MacVST/ToTape5/ToTape5.xcodeproj/christopherjohnson.pbxuser34
-rwxr-xr-xplugins/MacVST/ToTape5/ToTape5.xcodeproj/christopherjohnson.perspectivev328
-rwxr-xr-xplugins/MacVST/ToTape5/source/ToTape5.cpp7
-rwxr-xr-xplugins/MacVST/ToTape5/source/ToTape5.h7
-rwxr-xr-xplugins/MacVST/ToTape5/source/ToTape5Proc.cpp67
-rwxr-xr-xplugins/MacVST/ToVinyl4/ToVinyl4.xcodeproj/christopherjohnson.pbxuser22
-rwxr-xr-xplugins/MacVST/ToVinyl4/ToVinyl4.xcodeproj/christopherjohnson.perspectivev320
-rwxr-xr-xplugins/MacVST/ToVinyl4/source/ToVinyl4.cpp7
-rwxr-xr-xplugins/MacVST/ToVinyl4/source/ToVinyl4.h7
-rwxr-xr-xplugins/MacVST/ToVinyl4/source/ToVinyl4Proc.cpp62
-rwxr-xr-xplugins/MacVST/ToneSlant/ToneSlant.xcodeproj/christopherjohnson.pbxuser12
-rwxr-xr-xplugins/MacVST/ToneSlant/ToneSlant.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/ToneSlant/source/ToneSlant.cpp7
-rwxr-xr-xplugins/MacVST/ToneSlant/source/ToneSlant.h7
-rwxr-xr-xplugins/MacVST/ToneSlant/source/ToneSlantProc.cpp62
-rwxr-xr-xplugins/MacVST/TransDesk/TransDesk.xcodeproj/christopherjohnson.pbxuser4
-rwxr-xr-xplugins/MacVST/TransDesk/TransDesk.xcodeproj/christopherjohnson.perspectivev39
-rwxr-xr-xplugins/MacVST/TransDesk/source/TransDesk.cpp7
-rwxr-xr-xplugins/MacVST/TransDesk/source/TransDesk.h7
-rwxr-xr-xplugins/MacVST/TransDesk/source/TransDeskProc.cpp62
-rwxr-xr-xplugins/MacVST/Tremolo/Tremolo.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/Tremolo/Tremolo.xcodeproj/christopherjohnson.perspectivev313
-rwxr-xr-xplugins/MacVST/Tremolo/source/Tremolo.cpp7
-rwxr-xr-xplugins/MacVST/Tremolo/source/Tremolo.h7
-rwxr-xr-xplugins/MacVST/Tremolo/source/TremoloProc.cpp62
-rwxr-xr-xplugins/MacVST/TubeDesk/TubeDesk.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/TubeDesk/TubeDesk.xcodeproj/christopherjohnson.perspectivev321
-rwxr-xr-xplugins/MacVST/TubeDesk/source/TubeDesk.cpp7
-rwxr-xr-xplugins/MacVST/TubeDesk/source/TubeDesk.h7
-rwxr-xr-xplugins/MacVST/TubeDesk/source/TubeDeskProc.cpp62
-rwxr-xr-xplugins/MacVST/UnBox/UnBox.xcodeproj/christopherjohnson.pbxuser27
-rwxr-xr-xplugins/MacVST/UnBox/UnBox.xcodeproj/christopherjohnson.perspectivev328
-rwxr-xr-xplugins/MacVST/UnBox/source/UnBoxProc.cpp54
-rwxr-xr-xplugins/MacVST/VariMu/VariMu.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-xplugins/MacVST/VariMu/VariMu.xcodeproj/christopherjohnson.perspectivev316
-rwxr-xr-xplugins/MacVST/VariMu/source/VariMuProc.cpp54
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/christopherjohnson.pbxuser8
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/christopherjohnson.perspectivev310
-rwxr-xr-xplugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.pbxproj4
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/contents.xcworkspacedata0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstatebin12075 -> 12075 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstatebin10373 -> 10373 bytes
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/spiadmin.mode1v30
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/spiadmin.pbxuser0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist0
-rwxr-xr-x[-rw-r--r--]plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme0
-rwxr-xr-xplugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarship.cpp7
-rwxr-xr-xplugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarship.h7
-rwxr-xr-xplugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarshipProc.cpp62
-rwxr-xr-xplugins/MacVST/Wider/Wider.xcodeproj/christopherjohnson.pbxuser30
-rwxr-xr-xplugins/MacVST/Wider/Wider.xcodeproj/christopherjohnson.perspectivev320
-rwxr-xr-xplugins/MacVST/Wider/source/Wider.cpp7
-rwxr-xr-xplugins/MacVST/Wider/source/Wider.h7
-rwxr-xr-xplugins/MacVST/Wider/source/WiderProc.cpp62
-rwxr-xr-xplugins/MacVST/uLawDecode/source/uLawDecodeProc.cpp54
-rwxr-xr-xplugins/MacVST/uLawDecode/uLawDecode.xcodeproj/christopherjohnson.pbxuser4
-rwxr-xr-xplugins/MacVST/uLawDecode/uLawDecode.xcodeproj/christopherjohnson.perspectivev317
-rwxr-xr-xplugins/MacVST/uLawEncode/source/uLawEncodeProc.cpp54
-rwxr-xr-xplugins/MacVST/uLawEncode/uLawEncode.xcodeproj/christopherjohnson.pbxuser4
-rwxr-xr-xplugins/MacVST/uLawEncode/uLawEncode.xcodeproj/christopherjohnson.perspectivev39
665 files changed, 11537 insertions, 9000 deletions
diff --git a/plugins/MacVST/ADClip7/ADClip7.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ADClip7/ADClip7.xcodeproj/christopherjohnson.pbxuser
index 799d07e..a0c7b52 100755
--- a/plugins/MacVST/ADClip7/ADClip7.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ADClip7/ADClip7.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 538005027;
- PBXWorkspaceStateSaveDate = 538005027;
+ PBXPerProjectTemplateStateSaveDate = 569707583;
+ PBXWorkspaceStateSaveDate = 569707583;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -82,9 +82,9 @@
};
24D8286F09A914000093AEF8 /* ADClip7Proc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {894, 12142}}";
+ sepNavIntBoundsRect = "{{0, 0}, {894, 12259}}";
sepNavSelRange = "{31114, 0}";
- sepNavVisRange = "{17851, 2149}";
+ sepNavVisRange = "{14613, 1745}";
sepNavWindowFrame = "{{361, 47}, {895, 831}}";
};
};
diff --git a/plugins/MacVST/ADClip7/ADClip7.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ADClip7/ADClip7.xcodeproj/christopherjohnson.perspectivev3
index c9b5da3..ea91334 100755
--- a/plugins/MacVST/ADClip7/ADClip7.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ADClip7/ADClip7.xcodeproj/christopherjohnson.perspectivev3
@@ -256,8 +256,6 @@
<key>Layout</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -386,8 +384,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
- <key>RubberWindowFrame</key>
- <string>96 265 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -441,7 +437,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>96 265 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -469,11 +467,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B79CD1820114E3100E8A187</string>
+ <string>8B79332C21F50C74006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B79CD1920114E3100E8A187</string>
+ <string>8B79332D21F50C74006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B79CD1A20114E3100E8A187</string>
+ <string>8B79332E21F50C74006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +624,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>538005096.68480003</real>
+ <real>569707636.05000305</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +641,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B79CD2620114E6800E8A187</string>
<string>/Users/christopherjohnson/Desktop/MacVST/ADClip7/ADClip7.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/ADClip7/source/ADClip7.cpp b/plugins/MacVST/ADClip7/source/ADClip7.cpp
index fb6d6c6..7ebc817 100755
--- a/plugins/MacVST/ADClip7/source/ADClip7.cpp
+++ b/plugins/MacVST/ADClip7/source/ADClip7.cpp
@@ -30,11 +30,8 @@ ADClip7::ADClip7(audioMasterCallback audioMaster) :
iirLowsBL = 0.0;
iirLowsBR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/ADClip7/source/ADClip7.h b/plugins/MacVST/ADClip7/source/ADClip7.h
index f20d3fb..f0cde6c 100755
--- a/plugins/MacVST/ADClip7/source/ADClip7.h
+++ b/plugins/MacVST/ADClip7/source/ADClip7.h
@@ -55,11 +55,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
long double lastSampleL;
long double lastSampleR;
diff --git a/plugins/MacVST/ADClip7/source/ADClip7Proc.cpp b/plugins/MacVST/ADClip7/source/ADClip7Proc.cpp
index 2705d61..abc9909 100755
--- a/plugins/MacVST/ADClip7/source/ADClip7Proc.cpp
+++ b/plugins/MacVST/ADClip7/source/ADClip7Proc.cpp
@@ -17,10 +17,8 @@ void ADClip7::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
-
+ long double fpNew = 1.0 - fpOld;
double inputGain = pow(10.0,(A*18.0)/20.0);
double softness = B * fpNew;
double hardness = 1.0 - softness;
@@ -449,25 +447,14 @@ void ADClip7::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
if (inputSampleR < -refclipR) inputSampleR = -refclipR;
//final iron bar
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -489,10 +476,8 @@ void ADClip7::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
-
+ long double fpNew = 1.0 - fpOld;
double inputGain = pow(10.0,(A*18.0)/20.0);
double softness = B * fpNew;
double hardness = 1.0 - softness;
@@ -922,25 +907,16 @@ void ADClip7::processDoubleReplacing(double **inputs, double **outputs, VstInt32
if (inputSampleR < -refclipR) inputSampleR = -refclipR;
//final iron bar
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/ADT/ADT.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ADT/ADT.xcodeproj/christopherjohnson.pbxuser
index 883fa84..8d10b59 100755
--- a/plugins/MacVST/ADT/ADT.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ADT/ADT.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,13 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 561773367;
- PBXWorkspaceStateSaveDate = 561773367;
+ PBXPerProjectTemplateStateSaveDate = 569707657;
+ PBXWorkspaceStateSaveDate = 569707657;
};
perUserProjectItems = {
- 8B15DB9A21743644007AD769 /* PBXTextBookmark */ = 8B15DB9A21743644007AD769 /* PBXTextBookmark */;
- 8B15DD60217BFB50007AD769 /* PBXTextBookmark */ = 8B15DD60217BFB50007AD769 /* PBXTextBookmark */;
+ 8B79334D21F50CB2006E9731 /* PBXTextBookmark */ = 8B79334D21F50CB2006E9731 /* PBXTextBookmark */;
+ 8B79334E21F50CB2006E9731 /* PBXTextBookmark */ = 8B79334E21F50CB2006E9731 /* PBXTextBookmark */;
+ 8B79334F21F50CB2006E9731 /* PBXTextBookmark */ = 8B79334F21F50CB2006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -62,9 +63,9 @@
};
2407DEB6089929BA00EB68BF /* ADT.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {740, 2093}}";
+ sepNavIntBoundsRect = "{{0, 0}, {691, 2002}}";
sepNavSelRange = "{4290, 0}";
- sepNavVisRange = "{3343, 2609}";
+ sepNavVisRange = "{4100, 345}";
sepNavWindowFrame = "{{735, 48}, {705, 830}}";
};
};
@@ -86,9 +87,9 @@
};
24D8286F09A914000093AEF8 /* ADTProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {649, 4875}}";
+ sepNavIntBoundsRect = "{{0, 0}, {782, 4446}}";
sepNavSelRange = "{7166, 0}";
- sepNavVisRange = "{7098, 143}";
+ sepNavVisRange = "{5269, 841}";
sepNavWindowFrame = "{{129, 47}, {895, 831}}";
};
};
@@ -106,25 +107,35 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B15DB9A21743644007AD769 /* PBXTextBookmark */ = {
+ 8B79334D21F50CB2006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2407DEB6089929BA00EB68BF /* ADT.cpp */;
+ name = "ADT.cpp: 121";
+ rLen = 0;
+ rLoc = 4290;
+ rType = 0;
+ vrLen = 345;
+ vrLoc = 4100;
+ };
+ 8B79334E21F50CB2006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ADTProc.cpp */;
- name = "ADTProc.cpp: 207";
+ name = "ADTProc.cpp: 213";
rLen = 0;
rLoc = 7166;
rType = 0;
- vrLen = 178;
- vrLoc = 7098;
+ vrLen = 256;
+ vrLoc = 7031;
};
- 8B15DD60217BFB50007AD769 /* PBXTextBookmark */ = {
+ 8B79334F21F50CB2006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ADTProc.cpp */;
- name = "ADTProc.cpp: 207";
+ name = "ADTProc.cpp: 213";
rLen = 0;
rLoc = 7166;
rType = 0;
- vrLen = 143;
- vrLoc = 7098;
+ vrLen = 841;
+ vrLoc = 5269;
};
8D01CCC60486CAD60068D4B7 /* ADT */ = {
activeExec = 0;
diff --git a/plugins/MacVST/ADT/ADT.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ADT/ADT.xcodeproj/christopherjohnson.perspectivev3
index 1eef004..05aaf68 100755
--- a/plugins/MacVST/ADT/ADT.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ADT/ADT.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>5</integer>
+ <integer>6</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -351,10 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B15DD60217BFB50007AD769</string>
+ <string>8B79334F21F50CB2006E9731</string>
<key>history</key>
<array>
- <string>8B15DB9A21743644007AD769</string>
+ <string>8B79334D21F50CB2006E9731</string>
+ <string>8B79334E21F50CB2006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 117}}</string>
+ <string>{{0, 0}, {603, 322}}</string>
<key>RubberWindowFrame</key>
<string>162 338 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>117pt</string>
+ <string>322pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>324pt</string>
+ <string>119pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +394,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 297}}</string>
+ <string>{{10, 27}, {603, 92}}</string>
<key>RubberWindowFrame</key>
<string>162 338 810 487 0 0 1440 878 </string>
</dict>
@@ -477,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B15DD52217BFB50007AD769</string>
+ <string>8B79335021F50CB2006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B15DD53217BFB50007AD769</string>
+ <string>8B79335121F50CB2006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B15DD54217BFB50007AD769</string>
+ <string>8B79335221F50CB2006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>561773392.88148701</real>
+ <real>569707698.51112998</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +652,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B15DD55217BFB50007AD769</string>
<string>/Users/christopherjohnson/Desktop/MacVST/ADT/ADT.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/ADT/source/ADTProc.cpp b/plugins/MacVST/ADT/source/ADTProc.cpp
index f963f2f..74d23dd 100755
--- a/plugins/MacVST/ADT/source/ADTProc.cpp
+++ b/plugins/MacVST/ADT/source/ADTProc.cpp
@@ -156,18 +156,14 @@ void ADT::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrame
if (output < 1.0) {inputSampleL *= output; inputSampleR *= output;}
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -177,12 +173,6 @@ void ADT::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrame
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void ADT::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -334,18 +324,16 @@ void ADT::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sam
if (output < 1.0) {inputSampleL *= output; inputSampleR *= output;}
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -355,10 +343,4 @@ void ADT::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sam
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/AQuickVoiceClip/AQuickVoiceClip.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/AQuickVoiceClip/AQuickVoiceClip.xcodeproj/christopherjohnson.pbxuser
index 9ff059e..56e51e7 100755
--- a/plugins/MacVST/AQuickVoiceClip/AQuickVoiceClip.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/AQuickVoiceClip/AQuickVoiceClip.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459055;
- PBXWorkspaceStateSaveDate = 528459055;
+ PBXPerProjectTemplateStateSaveDate = 569707744;
+ PBXWorkspaceStateSaveDate = 569707744;
};
perUserProjectItems = {
- 8B1949391F0F1A0500C5FAB9 /* PBXTextBookmark */ = 8B1949391F0F1A0500C5FAB9 /* PBXTextBookmark */;
+ 8B79338421F50CE8006E9731 /* PBXTextBookmark */ = 8B79338421F50CE8006E9731 /* PBXTextBookmark */;
8B9D774E1F7FA54A007AB60F /* PBXTextBookmark */ = 8B9D774E1F7FA54A007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -70,7 +70,7 @@
};
245463B80991757100464AD3 /* AQuickVoiceClip.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 1976}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 1690}}";
sepNavSelRange = "{3742, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{514, 47}, {895, 831}}";
@@ -106,7 +106,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B1949391F0F1A0500C5FAB9 /* PBXTextBookmark */ = {
+ 8B79338421F50CE8006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* AQuickVoiceClip.h */;
name = "AQuickVoiceClip.h: 117";
diff --git a/plugins/MacVST/AQuickVoiceClip/AQuickVoiceClip.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/AQuickVoiceClip/AQuickVoiceClip.xcodeproj/christopherjohnson.perspectivev3
index 57c47dc..ce95340 100755
--- a/plugins/MacVST/AQuickVoiceClip/AQuickVoiceClip.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/AQuickVoiceClip/AQuickVoiceClip.xcodeproj/christopherjohnson.perspectivev3
@@ -256,8 +256,6 @@
<key>Layout</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -351,10 +349,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D774E1F7FA54A007AB60F</string>
+ <string>8B79338421F50CE8006E9731</string>
<key>history</key>
<array>
- <string>8B1949391F0F1A0500C5FAB9</string>
+ <string>8B9D774E1F7FA54A007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -394,8 +392,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
- <key>RubberWindowFrame</key>
- <string>384 225 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -449,7 +445,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>384 225 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +475,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D774F1F7FA54A007AB60F</string>
+ <string>8B79338521F50CE8006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D77501F7FA54A007AB60F</string>
+ <string>8B79338621F50CE8006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D77511F7FA54A007AB60F</string>
+ <string>8B79338721F50CE8006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +632,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459082.86255097</real>
+ <real>569707752.54956698</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +649,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D77521F7FA54A007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/AQuickVoiceClip/AQuickVoiceClip.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClip.cpp b/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClip.cpp
index 9b5ea81..9b84221 100755
--- a/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClip.cpp
+++ b/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClip.cpp
@@ -57,11 +57,8 @@ AQuickVoiceClip::AQuickVoiceClip(audioMasterCallback audioMaster) :
ataK4 = 0.886; //remainder of interpolated dry, adds up to 1.0
ataK5 = 0.431; //subtract this much prev. diff sample, brightens. 0.431 becomes flat
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClip.h b/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClip.h
index dc8f5fa..40cfab2 100755
--- a/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClip.h
+++ b/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClip.h
@@ -115,11 +115,8 @@ private:
double RiirSampleD;
bool flip;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClipProc.cpp b/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClipProc.cpp
index 69dc283..cc282b6 100755
--- a/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClipProc.cpp
+++ b/plugins/MacVST/AQuickVoiceClip/source/AQuickVoiceClipProc.cpp
@@ -41,9 +41,6 @@ void AQuickVoiceClip::processReplacing(float **inputs, float **outputs, VstInt32
double RoutputSample;
double RdrySample;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -410,25 +407,14 @@ void AQuickVoiceClip::processReplacing(float **inputs, float **outputs, VstInt32
if (LlpDepth < 0.0) LlpDepth = 0.0;
if (RlpDepth < 0.0) RlpDepth = 0.0;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
inputSampleL *= (1.0-LmaxRecent);
inputSampleR *= (1.0-RmaxRecent);
@@ -487,9 +473,6 @@ void AQuickVoiceClip::processDoubleReplacing(double **inputs, double **outputs,
double RoutputSample;
double RdrySample;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -856,25 +839,16 @@ void AQuickVoiceClip::processDoubleReplacing(double **inputs, double **outputs,
if (LlpDepth < 0.0) LlpDepth = 0.0;
if (RlpDepth < 0.0) RlpDepth = 0.0;
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
inputSampleL *= (1.0-LmaxRecent);
inputSampleR *= (1.0-RmaxRecent);
diff --git a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/christopherjohnson.pbxuser
index 6146ccc..de2e9ea 100644..100755
--- a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 539484698;
- PBXWorkspaceStateSaveDate = 539484698;
+ PBXPerProjectTemplateStateSaveDate = 569706438;
+ PBXWorkspaceStateSaveDate = 569706438;
};
perUserProjectItems = {
- 8BCA6F6E2027E22B00D92BAD /* PBXTextBookmark */ = 8BCA6F6E2027E22B00D92BAD /* PBXTextBookmark */;
- 8BCA6F6F2027E22B00D92BAD /* PBXTextBookmark */ = 8BCA6F6F2027E22B00D92BAD /* PBXTextBookmark */;
+ 8B7932FD21F507DF006E9731 /* XCBuildMessageTextBookmark */ = 8B7932FD21F507DF006E9731 /* XCBuildMessageTextBookmark */;
+ 8B79330721F50B3A006E9731 /* PBXTextBookmark */ = 8B79330721F50B3A006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -63,16 +63,16 @@
2407DEB6089929BA00EB68BF /* Acceleration.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {848, 1820}}";
- sepNavSelRange = "{671, 0}";
- sepNavVisRange = "{2909, 2099}";
+ sepNavSelRange = "{681, 92}";
+ sepNavVisRange = "{0, 2007}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Acceleration.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1157}}";
- sepNavSelRange = "{2833, 0}";
- sepNavVisRange = "{720, 2154}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 1118}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{661, 2147}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
@@ -86,9 +86,9 @@
};
24D8286F09A914000093AEF8 /* AccelerationProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 4277}}";
- sepNavSelRange = "{5841, 0}";
- sepNavVisRange = "{5761, 137}";
+ sepNavIntBoundsRect = "{{0, 0}, {621, 3822}}";
+ sepNavSelRange = "{9506, 0}";
+ sepNavVisRange = "{4212, 165}";
sepNavWindowFrame = "{{25, 47}, {895, 831}}";
};
};
@@ -106,25 +106,24 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BCA6F6E2027E22B00D92BAD /* PBXTextBookmark */ = {
+ 8B7932FD21F507DF006E9731 /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
+ comments = "'Float32' was not declared in this scope";
fRef = 24D8286F09A914000093AEF8 /* AccelerationProc.cpp */;
- name = "AccelerationProc.cpp: 196";
- rLen = 0;
- rLoc = 5841;
- rType = 0;
- vrLen = 137;
- vrLoc = 5761;
+ fallbackIsa = XCBuildMessageTextBookmark;
+ rLen = 1;
+ rLoc = 135;
+ rType = 1;
};
- 8BCA6F6F2027E22B00D92BAD /* PBXTextBookmark */ = {
+ 8B79330721F50B3A006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* AccelerationProc.cpp */;
- name = "AccelerationProc.cpp: 196";
+ name = "AccelerationProc.cpp: 298";
rLen = 0;
- rLoc = 5841;
+ rLoc = 9506;
rType = 0;
- vrLen = 137;
- vrLoc = 5761;
+ vrLen = 165;
+ vrLoc = 4212;
};
8D01CCC60486CAD60068D4B7 /* Acceleration */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/christopherjohnson.perspectivev3
index c17455b..6330e85 100644..100755
--- a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>9 374 810 487 0 0 1440 878 </string>
+ <string>7 375 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BCA6F6F2027E22B00D92BAD</string>
+ <string>8B79330721F50B3A006E9731</string>
<key>history</key>
<array>
- <string>8BCA6F6E2027E22B00D92BAD</string>
+ <string>8B7932FD21F507DF006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 117}}</string>
+ <string>{{0, 0}, {603, 86}}</string>
<key>RubberWindowFrame</key>
- <string>9 374 810 487 0 0 1440 878 </string>
+ <string>7 375 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>117pt</string>
+ <string>86pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>324pt</string>
+ <string>355pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 297}}</string>
- <key>RubberWindowFrame</key>
- <string>9 374 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 328}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -449,7 +447,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 328}}</string>
+ <key>RubberWindowFrame</key>
+ <string>7 375 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BCA6F702027E22B00D92BAD</string>
+ <string>8B7932EA21F507C8006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BCA6F712027E22B00D92BAD</string>
+ <string>8B7932EB21F507C8006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BCA6F722027E22B00D92BAD</string>
+ <string>8B7932EC21F507C8006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>539484715.52542996</real>
+ <real>569707322.35574102</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,11 +651,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BCA6F732027E22B00D92BAD</string>
+ <string>8B79330821F50B3A006E9731</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Acceleration/Acceleration.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>9 374 810 487 0 0 1440 878 </string>
+ <string>7 375 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index a80c038..a80c038 100644..100755
--- a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
index 5c38f94..5c38f94 100644..100755
--- a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
index 314de0f..314de0f 100644..100755
--- a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/spiadmin.mode1v3
index c572326..c572326 100644..100755
--- a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/spiadmin.mode1v3
+++ b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/spiadmin.mode1v3
diff --git a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/spiadmin.pbxuser
index df94780..df94780 100644..100755
--- a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/spiadmin.pbxuser
+++ b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/spiadmin.pbxuser
diff --git a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
index 8ee693f..8ee693f 100644..100755
--- a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
+++ b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
diff --git a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
index 5bccbcb..5bccbcb 100644..100755
--- a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
index a7bdd62..a7bdd62 100644..100755
--- a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
index 0df2de4..0df2de4 100644..100755
--- a/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
+++ b/plugins/MacVST/Acceleration/Acceleration.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
diff --git a/plugins/MacVST/Acceleration/source/Acceleration.cpp b/plugins/MacVST/Acceleration/source/Acceleration.cpp
index f20c8f2..b2721d9 100755
--- a/plugins/MacVST/Acceleration/source/Acceleration.cpp
+++ b/plugins/MacVST/Acceleration/source/Acceleration.cpp
@@ -23,11 +23,8 @@ Acceleration::Acceleration(audioMasterCallback audioMaster) :
o1R = o2R = o3R = 0.0;
m1R = m2R = desR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Acceleration/source/Acceleration.h b/plugins/MacVST/Acceleration/source/Acceleration.h
index a152e25..02a3760 100755
--- a/plugins/MacVST/Acceleration/source/Acceleration.h
+++ b/plugins/MacVST/Acceleration/source/Acceleration.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double ataLastOutL;
double s1L;
diff --git a/plugins/MacVST/Acceleration/source/AccelerationProc.cpp b/plugins/MacVST/Acceleration/source/AccelerationProc.cpp
index 4785e37..0151dbe 100755
--- a/plugins/MacVST/Acceleration/source/AccelerationProc.cpp
+++ b/plugins/MacVST/Acceleration/source/AccelerationProc.cpp
@@ -17,9 +17,6 @@ void Acceleration::processReplacing(float **inputs, float **outputs, VstInt32 sa
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double intensity = pow(A,3)*(32/overallscale);
double wet = B;
@@ -135,25 +132,14 @@ void Acceleration::processReplacing(float **inputs, float **outputs, VstInt32 sa
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -175,9 +161,6 @@ void Acceleration::processDoubleReplacing(double **inputs, double **outputs, Vst
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double intensity = pow(A,3)*(32/overallscale);
double wet = B;
@@ -293,25 +276,16 @@ void Acceleration::processDoubleReplacing(double **inputs, double **outputs, Vst
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Air/Air.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Air/Air.xcodeproj/christopherjohnson.pbxuser
index f47bee4..1d6d131 100755
--- a/plugins/MacVST/Air/Air.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Air/Air.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* Air */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459012;
- PBXWorkspaceStateSaveDate = 528459012;
+ PBXPerProjectTemplateStateSaveDate = 569707718;
+ PBXWorkspaceStateSaveDate = 569707718;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* Air */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/Air/Air.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Air/Air.xcodeproj/christopherjohnson.perspectivev3
index 51c8a58..fc2db00 100755
--- a/plugins/MacVST/Air/Air.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Air/Air.xcodeproj/christopherjohnson.perspectivev3
@@ -256,8 +256,6 @@
<key>Layout</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -323,7 +321,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>630 108 810 487 0 0 1440 878 </string>
+ <string>172 221 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -362,7 +360,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>630 108 810 487 0 0 1440 878 </string>
+ <string>172 221 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -386,8 +384,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
- <key>RubberWindowFrame</key>
- <string>630 108 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -441,7 +437,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>172 221 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -469,11 +467,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D77391F7FA524007AB60F</string>
+ <string>8B79336521F50CD1006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D773A1F7FA524007AB60F</string>
+ <string>8B79336621F50CD1006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D773B1F7FA524007AB60F</string>
+ <string>8B79336721F50CD1006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +624,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459044.96789801</real>
+ <real>569707729.79363501</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,11 +641,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D773C1F7FA524007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Air/Air.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>630 108 810 487 0 0 1440 878 </string>
+ <string>172 221 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Air/Air.xcodeproj/project.pbxproj b/plugins/MacVST/Air/Air.xcodeproj/project.pbxproj
index 014f5ac..6f03014 100755
--- a/plugins/MacVST/Air/Air.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/Air/Air.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* Air */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Air" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* Air */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Air/source/Air.cpp b/plugins/MacVST/Air/source/Air.cpp
index ebe8adc..ea52c26 100755
--- a/plugins/MacVST/Air/source/Air.cpp
+++ b/plugins/MacVST/Air/source/Air.cpp
@@ -61,11 +61,8 @@ Air::Air(audioMasterCallback audioMaster) :
D = 0.0;
E = 1.0;
F = 1.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Air/source/Air.h b/plugins/MacVST/Air/source/Air.h
index 00c0b76..a713cf2 100755
--- a/plugins/MacVST/Air/source/Air.h
+++ b/plugins/MacVST/Air/source/Air.h
@@ -100,11 +100,8 @@ private:
bool flop;
int count;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Air/source/AirProc.cpp b/plugins/MacVST/Air/source/AirProc.cpp
index f73e7d8..f5eb39f 100755
--- a/plugins/MacVST/Air/source/AirProc.cpp
+++ b/plugins/MacVST/Air/source/AirProc.cpp
@@ -22,9 +22,6 @@ void Air::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrame
double wet = F;
double dry = 1.0-wet;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -260,25 +257,14 @@ void Air::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrame
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -305,9 +291,6 @@ void Air::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sam
double wet = F;
double dry = 1.0-wet;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -543,25 +526,16 @@ void Air::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sam
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/AtmosphereBuss/AtmosphereBuss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/AtmosphereBuss/AtmosphereBuss.xcodeproj/christopherjohnson.pbxuser
index e6a5761..5640742 100755
--- a/plugins/MacVST/AtmosphereBuss/AtmosphereBuss.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/AtmosphereBuss/AtmosphereBuss.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 546567340;
- PBXWorkspaceStateSaveDate = 546567340;
+ PBXPerProjectTemplateStateSaveDate = 569718087;
+ PBXWorkspaceStateSaveDate = 569718087;
};
perUserProjectItems = {
+ 8B7933A421F53550006E9731 /* PBXTextBookmark */ = 8B7933A421F53550006E9731 /* PBXTextBookmark */;
8BC5CF342093F49F0058B257 /* PBXTextBookmark */ = 8BC5CF342093F49F0058B257 /* PBXTextBookmark */;
- 8BC5CF692093F4CF0058B257 /* PBXTextBookmark */ = 8BC5CF692093F4CF0058B257 /* PBXTextBookmark */;
8BC5CF6A2093F4CF0058B257 /* PBXTextBookmark */ = 8BC5CF6A2093F4CF0058B257 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -87,9 +87,9 @@
};
24D8286F09A914000093AEF8 /* AtmosphereBussProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {670, 7397}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 6929}}";
sepNavSelRange = "{13569, 0}";
- sepNavVisRange = "{1515, 154}";
+ sepNavVisRange = "{1538, 131}";
sepNavWindowFrame = "{{15, 47}, {895, 831}}";
};
};
@@ -107,6 +107,16 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
+ 8B7933A421F53550006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* AtmosphereBussProc.cpp */;
+ name = "AtmosphereBussProc.cpp: 378";
+ rLen = 0;
+ rLoc = 13569;
+ rType = 0;
+ vrLen = 131;
+ vrLoc = 1538;
+ };
8BC5CF342093F49F0058B257 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* AtmosphereBuss.cpp */;
@@ -117,16 +127,6 @@
vrLen = 421;
vrLoc = 2085;
};
- 8BC5CF692093F4CF0058B257 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* AtmosphereBussProc.cpp */;
- name = "AtmosphereBussProc.cpp: 379";
- rLen = 0;
- rLoc = 13569;
- rType = 0;
- vrLen = 154;
- vrLoc = 1515;
- };
8BC5CF6A2093F4CF0058B257 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* AtmosphereBussProc.cpp */;
diff --git a/plugins/MacVST/AtmosphereBuss/AtmosphereBuss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/AtmosphereBuss/AtmosphereBuss.xcodeproj/christopherjohnson.perspectivev3
index 9bbfe98..16bcc2b 100755
--- a/plugins/MacVST/AtmosphereBuss/AtmosphereBuss.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/AtmosphereBuss/AtmosphereBuss.xcodeproj/christopherjohnson.perspectivev3
@@ -349,11 +349,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BC5CF6A2093F4CF0058B257</string>
+ <string>8B7933A421F53550006E9731</string>
<key>history</key>
<array>
<string>8BC5CF342093F49F0058B257</string>
- <string>8BC5CF692093F4CF0058B257</string>
+ <string>8BC5CF6A2093F4CF0058B257</string>
</array>
</dict>
<key>SplitCount</key>
@@ -367,18 +367,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 117}}</string>
+ <string>{{0, 0}, {603, 102}}</string>
<key>RubberWindowFrame</key>
<string>11 221 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>117pt</string>
+ <string>102pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>324pt</string>
+ <string>339pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,7 +394,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 297}}</string>
+ <string>{{10, 27}, {603, 312}}</string>
<key>RubberWindowFrame</key>
<string>11 221 810 487 0 0 1440 878 </string>
</dict>
@@ -478,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BC5CF6B2093F4CF0058B257</string>
+ <string>8B7933A521F53550006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BC5CF6C2093F4CF0058B257</string>
+ <string>8B7933A621F53550006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BC5CF6D2093F4CF0058B257</string>
+ <string>8B7933A721F53550006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>546567375.58979297</real>
+ <real>569718096.20929098</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,7 +652,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/AtmosphereBuss/AtmosphereBuss.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/AtmosphereBuss/AtmosphereBuss.xcodeproj</string>
</array>
<key>WindowString</key>
<string>11 221 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/AtmosphereBuss/source/AtmosphereBussProc.cpp b/plugins/MacVST/AtmosphereBuss/source/AtmosphereBussProc.cpp
index 6530a7e..16d7a31 100755
--- a/plugins/MacVST/AtmosphereBuss/source/AtmosphereBussProc.cpp
+++ b/plugins/MacVST/AtmosphereBuss/source/AtmosphereBussProc.cpp
@@ -13,7 +13,6 @@ void AtmosphereBuss::processReplacing(float **inputs, float **outputs, VstInt32
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
@@ -250,18 +249,14 @@ void AtmosphereBuss::processReplacing(float **inputs, float **outputs, VstInt32
lastSampleAR = drySampleR;
//store the raw R input sample again for use next time
- //noise shaping to 32-bit floating point
- fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -271,12 +266,6 @@ void AtmosphereBuss::processReplacing(float **inputs, float **outputs, VstInt32
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void AtmosphereBuss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -285,7 +274,6 @@ void AtmosphereBuss::processDoubleReplacing(double **inputs, double **outputs, V
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
@@ -522,18 +510,16 @@ void AtmosphereBuss::processDoubleReplacing(double **inputs, double **outputs, V
lastSampleAR = drySampleR;
//store the raw R input sample again for use next time
- //noise shaping to 64-bit floating point
- fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -543,10 +529,4 @@ void AtmosphereBuss::processDoubleReplacing(double **inputs, double **outputs, V
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
} \ No newline at end of file
diff --git a/plugins/MacVST/AtmosphereChannel/AtmosphereChannel.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/AtmosphereChannel/AtmosphereChannel.xcodeproj/christopherjohnson.pbxuser
index f90657e..2f73690 100755
--- a/plugins/MacVST/AtmosphereChannel/AtmosphereChannel.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/AtmosphereChannel/AtmosphereChannel.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 546562888;
- PBXWorkspaceStateSaveDate = 546562888;
+ PBXPerProjectTemplateStateSaveDate = 569718117;
+ PBXWorkspaceStateSaveDate = 569718117;
};
perUserProjectItems = {
- 8BC5CF292093F3420058B257 /* PBXTextBookmark */ = 8BC5CF292093F3420058B257 /* PBXTextBookmark */;
- 8BC5CF5A2093F4C50058B257 /* PBXTextBookmark */ = 8BC5CF5A2093F4C50058B257 /* PBXTextBookmark */;
+ 8B7933C421F5356E006E9731 /* PBXTextBookmark */ = 8B7933C421F5356E006E9731 /* PBXTextBookmark */;
+ 8B904B70209D2FF5008CBAD8 /* PBXTextBookmark */ = 8B904B70209D2FF5008CBAD8 /* PBXTextBookmark */;
+ 8B904BB3209D3409008CBAD8 /* PBXTextBookmark */ = 8B904BB3209D3409008CBAD8 /* PBXTextBookmark */;
+ 8BFBE952209D206700E1438C /* PBXTextBookmark */ = 8BFBE952209D206700E1438C /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -62,17 +64,17 @@
};
2407DEB6089929BA00EB68BF /* AtmosphereChannel.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {754, 1716}}";
+ sepNavIntBoundsRect = "{{0, 0}, {754, 1976}}";
sepNavSelRange = "{4879, 0}";
- sepNavVisRange = "{2108, 329}";
+ sepNavVisRange = "{2134, 303}";
sepNavWindowFrame = "{{291, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* AtmosphereChannel.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1391}}";
+ sepNavIntBoundsRect = "{{0, 0}, {817, 1378}}";
sepNavSelRange = "{2886, 0}";
- sepNavVisRange = "{0, 2464}";
+ sepNavVisRange = "{2348, 116}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
@@ -86,10 +88,10 @@
};
24D8286F09A914000093AEF8 /* AtmosphereChannelProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 7046}}";
- sepNavSelRange = "{10357, 9646}";
- sepNavVisRange = "{9730, 1796}";
- sepNavWindowFrame = "{{570, 47}, {895, 831}}";
+ sepNavIntBoundsRect = "{{0, 0}, {747, 6825}}";
+ sepNavSelRange = "{9679, 0}";
+ sepNavVisRange = "{9613, 109}";
+ sepNavWindowFrame = "{{545, 45}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
@@ -106,25 +108,45 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BC5CF292093F3420058B257 /* PBXTextBookmark */ = {
+ 8B7933C421F5356E006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 2407DEB6089929BA00EB68BF /* AtmosphereChannel.cpp */;
- name = "AtmosphereChannel.cpp: 146";
+ fRef = 24D8286F09A914000093AEF8 /* AtmosphereChannelProc.cpp */;
+ name = "AtmosphereChannelProc.cpp: 266";
rLen = 0;
- rLoc = 4879;
+ rLoc = 9679;
+ rType = 0;
+ vrLen = 109;
+ vrLoc = 9613;
+ };
+ 8B904B70209D2FF5008CBAD8 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 245463B80991757100464AD3 /* AtmosphereChannel.h */;
+ name = "AtmosphereChannel.h: 73";
+ rLen = 0;
+ rLoc = 2886;
+ rType = 0;
+ vrLen = 116;
+ vrLoc = 2348;
+ };
+ 8B904BB3209D3409008CBAD8 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* AtmosphereChannelProc.cpp */;
+ name = "AtmosphereChannelProc.cpp: 262";
+ rLen = 0;
+ rLoc = 9679;
rType = 0;
- vrLen = 329;
- vrLoc = 2108;
+ vrLen = 52;
+ vrLoc = 9647;
};
- 8BC5CF5A2093F4C50058B257 /* PBXTextBookmark */ = {
+ 8BFBE952209D206700E1438C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* AtmosphereChannel.cpp */;
name = "AtmosphereChannel.cpp: 146";
rLen = 0;
rLoc = 4879;
rType = 0;
- vrLen = 329;
- vrLoc = 2108;
+ vrLen = 303;
+ vrLoc = 2134;
};
8D01CCC60486CAD60068D4B7 /* AtmosphereChannel */ = {
activeExec = 0;
diff --git a/plugins/MacVST/AtmosphereChannel/AtmosphereChannel.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/AtmosphereChannel/AtmosphereChannel.xcodeproj/christopherjohnson.perspectivev3
index 3cbeff8..75a73d9 100755
--- a/plugins/MacVST/AtmosphereChannel/AtmosphereChannel.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/AtmosphereChannel/AtmosphereChannel.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -298,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>7</integer>
+ <integer>6</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -321,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>17 313 810 487 0 0 1440 878 </string>
+ <string>630 297 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -337,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>AtmosphereChannel.cpp</string>
+ <string>AtmosphereChannelProc.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -345,14 +347,16 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>AtmosphereChannel.cpp</string>
+ <string>AtmosphereChannelProc.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BC5CF5A2093F4C50058B257</string>
+ <string>8B7933C421F5356E006E9731</string>
<key>history</key>
<array>
- <string>8BC5CF292093F3420058B257</string>
+ <string>8BFBE952209D206700E1438C</string>
+ <string>8B904B70209D2FF5008CBAD8</string>
+ <string>8B904BB3209D3409008CBAD8</string>
</array>
</dict>
<key>SplitCount</key>
@@ -366,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 117}}</string>
+ <string>{{0, 0}, {603, 51}}</string>
<key>RubberWindowFrame</key>
- <string>17 313 810 487 0 0 1440 878 </string>
+ <string>630 297 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>117pt</string>
+ <string>51pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>324pt</string>
+ <string>390pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -391,7 +395,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 297}}</string>
+ <string>{{10, 27}, {603, 363}}</string>
+ <key>RubberWindowFrame</key>
+ <string>630 297 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -446,8 +452,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 297}}</string>
- <key>RubberWindowFrame</key>
- <string>17 313 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -475,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BC5CECB2093E3520058B257</string>
+ <string>8B7933C521F5356E006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BC5CECC2093E3520058B257</string>
+ <string>8B7933C621F5356E006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BC5CECD2093E3520058B257</string>
+ <string>8B7933C721F5356E006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -632,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>546567365.81376398</real>
+ <real>569718126.81761706</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -649,10 +653,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/AtmosphereChannel/AtmosphereChannel.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/AtmosphereChannel/AtmosphereChannel.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>17 313 810 487 0 0 1440 878 </string>
+ <string>630 297 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/AtmosphereChannel/source/AtmosphereChannelProc.cpp b/plugins/MacVST/AtmosphereChannel/source/AtmosphereChannelProc.cpp
index 97038e8..bbdf44c 100755
--- a/plugins/MacVST/AtmosphereChannel/source/AtmosphereChannelProc.cpp
+++ b/plugins/MacVST/AtmosphereChannel/source/AtmosphereChannelProc.cpp
@@ -13,7 +13,6 @@ void AtmosphereChannel::processReplacing(float **inputs, float **outputs, VstInt
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
@@ -245,18 +244,14 @@ void AtmosphereChannel::processReplacing(float **inputs, float **outputs, VstInt
lastSampleAR = drySampleR;
//store the raw R input sample again for use next time
- //noise shaping to 32-bit floating point
- fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -266,12 +261,6 @@ void AtmosphereChannel::processReplacing(float **inputs, float **outputs, VstInt
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void AtmosphereChannel::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -280,7 +269,6 @@ void AtmosphereChannel::processDoubleReplacing(double **inputs, double **outputs
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
@@ -512,18 +500,16 @@ void AtmosphereChannel::processDoubleReplacing(double **inputs, double **outputs
lastSampleAR = drySampleR;
//store the raw R input sample again for use next time
- //noise shaping to 64-bit floating point
- fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -533,10 +519,4 @@ void AtmosphereChannel::processDoubleReplacing(double **inputs, double **outputs
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
} \ No newline at end of file
diff --git a/plugins/MacVST/Aura/Aura.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Aura/Aura.xcodeproj/christopherjohnson.pbxuser
index 37c0976..ae8beb8 100755
--- a/plugins/MacVST/Aura/Aura.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Aura/Aura.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 546126715;
- PBXWorkspaceStateSaveDate = 546126715;
+ PBXPerProjectTemplateStateSaveDate = 569718158;
+ PBXWorkspaceStateSaveDate = 569718158;
};
perUserProjectItems = {
- 8BC5CC52208D3DCE0058B257 /* PBXTextBookmark */ = 8BC5CC52208D3DCE0058B257 /* PBXTextBookmark */;
+ 8B7933E421F53595006E9731 /* PBXTextBookmark */ = 8B7933E421F53595006E9731 /* PBXTextBookmark */;
8BC5CEBA208D734A0058B257 /* PBXTextBookmark */ = 8BC5CEBA208D734A0058B257 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -86,9 +86,9 @@
};
24D8286F09A914000093AEF8 /* AuraProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 6305}}";
- sepNavSelRange = "{18235, 0}";
- sepNavVisRange = "{17720, 259}";
+ sepNavIntBoundsRect = "{{0, 0}, {621, 5967}}";
+ sepNavSelRange = "{17733, 0}";
+ sepNavVisRange = "{17681, 52}";
sepNavWindowFrame = "{{7, 47}, {877, 831}}";
};
};
@@ -106,24 +106,24 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BC5CC52208D3DCE0058B257 /* PBXTextBookmark */ = {
+ 8B7933E421F53595006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* AuraProc.cpp */;
- name = "AuraProc.cpp: 446";
+ name = "AuraProc.cpp: 450";
rLen = 0;
- rLoc = 14170;
+ rLoc = 17733;
rType = 0;
- vrLen = 285;
- vrLoc = 17613;
+ vrLen = 52;
+ vrLoc = 17681;
};
8BC5CEBA208D734A0058B257 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* AuraProc.cpp */;
name = "AuraProc.cpp: 475";
rLen = 0;
- rLoc = 18235;
+ rLoc = 17733;
rType = 0;
- vrLen = 259;
+ vrLen = 13;
vrLoc = 17720;
};
8D01CCC60486CAD60068D4B7 /* Aura */ = {
diff --git a/plugins/MacVST/Aura/Aura.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Aura/Aura.xcodeproj/christopherjohnson.perspectivev3
index bc4d2cf..7f62a6d 100755
--- a/plugins/MacVST/Aura/Aura.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Aura/Aura.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BC5CEBA208D734A0058B257</string>
+ <string>8B7933E421F53595006E9731</string>
<key>history</key>
<array>
- <string>8BC5CC52208D3DCE0058B257</string>
+ <string>8BC5CEBA208D734A0058B257</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>36 294 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>36 294 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -448,8 +450,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>36 294 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BC5CC5D208D3E220058B257</string>
+ <string>8B7933E521F53595006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BC5CC5E208D3E220058B257</string>
+ <string>8B7933E621F53595006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BC5CC5F208D3E220058B257</string>
+ <string>8B7933E721F53595006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>546141002.76876497</real>
+ <real>569718165.96792996</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,8 +651,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BC5CD63208D5C950058B257</string>
- <string>/Users/christopherjohnson/Desktop/Aura/Aura.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/Aura/Aura.xcodeproj</string>
</array>
<key>WindowString</key>
<string>36 294 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/Aura/source/Aura.cpp b/plugins/MacVST/Aura/source/Aura.cpp
index d011564..8663d3b 100755
--- a/plugins/MacVST/Aura/source/Aura.cpp
+++ b/plugins/MacVST/Aura/source/Aura.cpp
@@ -24,11 +24,8 @@ Aura::Aura(audioMasterCallback audioMaster) :
lastSampleR = 0.0;
previousVelocityR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Aura/source/Aura.h b/plugins/MacVST/Aura/source/Aura.h
index 557169d..22d4653 100755
--- a/plugins/MacVST/Aura/source/Aura.h
+++ b/plugins/MacVST/Aura/source/Aura.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
long double lastSampleL;
double previousVelocityL;
diff --git a/plugins/MacVST/Aura/source/AuraProc.cpp b/plugins/MacVST/Aura/source/AuraProc.cpp
index daf54d6..089a873 100755
--- a/plugins/MacVST/Aura/source/AuraProc.cpp
+++ b/plugins/MacVST/Aura/source/AuraProc.cpp
@@ -14,9 +14,6 @@ void Aura::processReplacing(float **inputs, float **outputs, VstInt32 sampleFram
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double correctionL;
double correctionR;
@@ -211,25 +208,14 @@ void Aura::processReplacing(float **inputs, float **outputs, VstInt32 sampleFram
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -248,9 +234,6 @@ void Aura::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double correctionL;
double correctionR;
@@ -445,25 +428,16 @@ void Aura::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Average/Average.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Average/Average.xcodeproj/christopherjohnson.pbxuser
index cede59c..1b8551b 100755
--- a/plugins/MacVST/Average/Average.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Average/Average.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* Average */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 530376878;
- PBXWorkspaceStateSaveDate = 530376878;
+ PBXPerProjectTemplateStateSaveDate = 569718186;
+ PBXWorkspaceStateSaveDate = 569718186;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -82,9 +82,9 @@
};
24D8286F09A914000093AEF8 /* AverageProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 4719}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 4329}}";
sepNavSelRange = "{9111, 0}";
- sepNavVisRange = "{8668, 2468}";
+ sepNavVisRange = "{4985, 1917}";
sepNavWindowFrame = "{{460, 41}, {895, 831}}";
};
};
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* Average */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/Average/Average.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Average/Average.xcodeproj/christopherjohnson.perspectivev3
index 01ca524..53bb902 100755
--- a/plugins/MacVST/Average/Average.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Average/Average.xcodeproj/christopherjohnson.perspectivev3
@@ -300,8 +300,9 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>10</integer>
- <integer>9</integer>
+ <integer>6</integer>
+ <integer>4</integer>
+ <integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
@@ -468,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BB863411F9CE8E100FC8156</string>
+ <string>8B79340521F535C0006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BB863421F9CE8E100FC8156</string>
+ <string>8B79340621F535C0006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BB863431F9CE8E100FC8156</string>
+ <string>8B79340721F535C0006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -625,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>530376929.99594998</real>
+ <real>569718208.35486102</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
diff --git a/plugins/MacVST/Average/Average.xcodeproj/project.pbxproj b/plugins/MacVST/Average/Average.xcodeproj/project.pbxproj
index a4f3ebf..b01e8d9 100755
--- a/plugins/MacVST/Average/Average.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/Average/Average.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* Average */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Average" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* Average */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Average/source/Average.cpp b/plugins/MacVST/Average/source/Average.cpp
index 945c76c..2f39ca1 100755
--- a/plugins/MacVST/Average/source/Average.cpp
+++ b/plugins/MacVST/Average/source/Average.cpp
@@ -17,11 +17,8 @@ Average::Average(audioMasterCallback audioMaster) :
for(int count = 0; count < 11; count++) {bL[count] = 0.0; bR[count] = 0.0; f[count] = 0.0;}
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Average/source/Average.h b/plugins/MacVST/Average/source/Average.h
index 7e4b25e..9932e99 100755
--- a/plugins/MacVST/Average/source/Average.h
+++ b/plugins/MacVST/Average/source/Average.h
@@ -57,11 +57,8 @@ private:
double f[11];
double bR[11];
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Average/source/AverageProc.cpp b/plugins/MacVST/Average/source/AverageProc.cpp
index 2b1c355..17f4783 100755
--- a/plugins/MacVST/Average/source/AverageProc.cpp
+++ b/plugins/MacVST/Average/source/AverageProc.cpp
@@ -14,9 +14,6 @@ void Average::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double correctionSample;
double accumulatorSampleL;
@@ -154,25 +151,14 @@ void Average::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
//in the floating point system.
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -189,12 +175,7 @@ void Average::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
- double* out2 = outputs[1];
-
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
-
+ double* out2 = outputs[1];
double correctionSample;
double accumulatorSampleL;
double accumulatorSampleR;
@@ -330,25 +311,16 @@ void Average::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//if it 'won't change anything' but our sample might be at a very different scaling
//in the floating point system.
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/BassKit/BassKit.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/BassKit/BassKit.xcodeproj/christopherjohnson.pbxuser
index 7a8a384..71471a7 100755
--- a/plugins/MacVST/BassKit/BassKit.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/BassKit/BassKit.xcodeproj/christopherjohnson.pbxuser
@@ -49,14 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 561849688;
- PBXWorkspaceStateSaveDate = 561849688;
+ PBXPerProjectTemplateStateSaveDate = 569718226;
+ PBXWorkspaceStateSaveDate = 569718226;
};
perUserProjectItems = {
- 8B15DC872178931A007AD769 /* PBXTextBookmark */ = 8B15DC872178931A007AD769 /* PBXTextBookmark */;
- 8B15DC8A2178931A007AD769 /* PBXTextBookmark */ = 8B15DC8A2178931A007AD769 /* PBXTextBookmark */;
+ 8B79342421F535E6006E9731 /* PBXTextBookmark */ = 8B79342421F535E6006E9731 /* PBXTextBookmark */;
8BC3BC31217D257A0043A8B7 /* PBXTextBookmark */ = 8BC3BC31217D257A0043A8B7 /* PBXTextBookmark */;
- 8BC3BC35217D257A0043A8B7 /* PBXTextBookmark */ = 8BC3BC35217D257A0043A8B7 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -80,7 +78,7 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19877}}";
+ sepNavIntBoundsRect = "{{0, 0}, {838, 19864}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{10459, 280}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
@@ -88,9 +86,9 @@
};
24D8286F09A914000093AEF8 /* BassKitProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {901, 6097}}";
+ sepNavIntBoundsRect = "{{0, 0}, {901, 5759}}";
sepNavSelRange = "{3023, 0}";
- sepNavVisRange = "{1492, 2701}";
+ sepNavVisRange = "{16984, 1948}";
sepNavWindowFrame = "{{41, 39}, {895, 831}}";
};
};
@@ -108,26 +106,16 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B15DC872178931A007AD769 /* PBXTextBookmark */ = {
+ 8B79342421F535E6006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 399;
+ vrLen = 280;
vrLoc = 10459;
};
- 8B15DC8A2178931A007AD769 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* BassKitProc.cpp */;
- name = "BassKitProc.cpp: 259";
- rLen = 0;
- rLoc = 10702;
- rType = 0;
- vrLen = 1721;
- vrLoc = 9607;
- };
8BC3BC31217D257A0043A8B7 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
@@ -138,16 +126,6 @@
vrLen = 280;
vrLoc = 10459;
};
- 8BC3BC35217D257A0043A8B7 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* BassKitProc.cpp */;
- name = "BassKitProc.cpp: 91";
- rLen = 0;
- rLoc = 3023;
- rType = 0;
- vrLen = 2701;
- vrLoc = 1492;
- };
8D01CCC60486CAD60068D4B7 /* BassKit */ = {
activeExec = 0;
};
diff --git a/plugins/MacVST/BassKit/BassKit.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/BassKit/BassKit.xcodeproj/christopherjohnson.perspectivev3
index f720cd0..4925ffa 100755
--- a/plugins/MacVST/BassKit/BassKit.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/BassKit/BassKit.xcodeproj/christopherjohnson.perspectivev3
@@ -222,48 +222,7 @@
</dict>
</array>
<key>OpenEditors</key>
- <array>
- <dict>
- <key>Content</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8B15DC882178931A007AD769</string>
- <key>PBXProjectModuleLabel</key>
- <string>BassKitProc.cpp</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8B15DC892178931A007AD769</string>
- <key>PBXProjectModuleLabel</key>
- <string>BassKitProc.cpp</string>
- <key>_historyCapacity</key>
- <integer>0</integer>
- <key>bookmark</key>
- <string>8BC3BC35217D257A0043A8B7</string>
- <key>history</key>
- <array>
- <string>8B15DC8A2178931A007AD769</string>
- </array>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
- <key>StatusBarVisibility</key>
- <true/>
- </dict>
- <key>Geometry</key>
- <dict>
- <key>Frame</key>
- <string>{{0, 20}, {895, 734}}</string>
- <key>PBXModuleWindowStatusBarHidden2</key>
- <false/>
- <key>RubberWindowFrame</key>
- <string>41 95 895 775 0 0 1440 878 </string>
- </dict>
- </dict>
- </array>
+ <array/>
<key>PerspectiveWidths</key>
<array>
<integer>810</integer>
@@ -392,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BC3BC31217D257A0043A8B7</string>
+ <string>8B79342421F535E6006E9731</string>
<key>history</key>
<array>
- <string>8B15DC872178931A007AD769</string>
+ <string>8BC3BC31217D257A0043A8B7</string>
</array>
</dict>
<key>SplitCount</key>
@@ -409,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 117}}</string>
+ <string>{{0, 0}, {603, 102}}</string>
<key>RubberWindowFrame</key>
<string>103 354 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>117pt</string>
+ <string>102pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>324pt</string>
+ <string>339pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -434,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 297}}</string>
+ <string>{{10, 27}, {603, 312}}</string>
<key>RubberWindowFrame</key>
<string>103 354 810 487 0 0 1440 878 </string>
</dict>
@@ -518,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BC3BC32217D257A0043A8B7</string>
+ <string>8B79342521F535E6006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BC3BC33217D257A0043A8B7</string>
+ <string>8B79342621F535E6006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BC3BC34217D257A0043A8B7</string>
+ <string>8B79342721F535E6006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -675,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>561849722.95006502</real>
+ <real>569718246.60174298</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -693,7 +652,6 @@
<key>WindowOrderList</key>
<array>
<string>/Users/christopherjohnson/Desktop/MacVST/BassKit/BassKit.xcodeproj</string>
- <string>8B15DC882178931A007AD769</string>
</array>
<key>WindowString</key>
<string>103 354 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/BassKit/source/BassKitProc.cpp b/plugins/MacVST/BassKit/source/BassKitProc.cpp
index df3310e..9199c82 100755
--- a/plugins/MacVST/BassKit/source/BassKitProc.cpp
+++ b/plugins/MacVST/BassKit/source/BassKitProc.cpp
@@ -204,18 +204,14 @@ void BassKit::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
bflip++;
if (bflip < 1 || bflip > 3) bflip = 1;
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -225,12 +221,6 @@ void BassKit::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void BassKit::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -430,18 +420,16 @@ void BassKit::processDoubleReplacing(double **inputs, double **outputs, VstInt32
bflip++;
if (bflip < 1 || bflip > 3) bflip = 1;
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -451,10 +439,4 @@ void BassKit::processDoubleReplacing(double **inputs, double **outputs, VstInt32
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/BitGlitter/BitGlitter.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/BitGlitter/BitGlitter.xcodeproj/christopherjohnson.pbxuser
index 04c5006..eadf6da 100755
--- a/plugins/MacVST/BitGlitter/BitGlitter.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/BitGlitter/BitGlitter.xcodeproj/christopherjohnson.pbxuser
@@ -51,8 +51,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 553994307;
- PBXWorkspaceStateSaveDate = 553994307;
+ PBXPerProjectTemplateStateSaveDate = 569718310;
+ PBXWorkspaceStateSaveDate = 569718310;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -60,17 +60,17 @@
};
2407DEB6089929BA00EB68BF /* BitGlitter.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 2249}}";
- sepNavSelRange = "{842, 0}";
- sepNavVisRange = "{1388, 1919}";
- sepNavWindowFrame = "{{891, 27}, {895, 831}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 2158}}";
+ sepNavSelRange = "{533, 0}";
+ sepNavVisRange = "{0, 1600}";
+ sepNavWindowFrame = "{{333, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* BitGlitter.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1118}}";
- sepNavSelRange = "{2943, 0}";
- sepNavVisRange = "{652, 2357}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 1157}}";
+ sepNavSelRange = "{2511, 0}";
+ sepNavVisRange = "{652, 2399}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
@@ -84,10 +84,10 @@
};
24D8286F09A914000093AEF8 /* BitGlitterProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 5200}}";
- sepNavSelRange = "{7162, 0}";
- sepNavVisRange = "{6302, 1605}";
- sepNavWindowFrame = "{{37, 33}, {895, 831}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 5902}}";
+ sepNavSelRange = "{13421, 0}";
+ sepNavVisRange = "{11871, 1722}";
+ sepNavWindowFrame = "{{169, 47}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
diff --git a/plugins/MacVST/BitGlitter/BitGlitter.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/BitGlitter/BitGlitter.xcodeproj/christopherjohnson.perspectivev3
index 9b744d3..b2c5d8c 100755
--- a/plugins/MacVST/BitGlitter/BitGlitter.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/BitGlitter/BitGlitter.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -298,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>5</integer>
+ <integer>6</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -321,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>129 148 810 487 0 0 1440 878 </string>
+ <string>144 271 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -360,7 +362,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>129 148 810 487 0 0 1440 878 </string>
+ <string>144 271 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -384,6 +386,8 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>144 271 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -438,8 +442,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
- <key>RubberWindowFrame</key>
- <string>129 148 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -467,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBD19152105484B0015A233</string>
+ <string>8B79347521F5371F006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBD19162105484B0015A233</string>
+ <string>8B79347621F5371F006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBD19172105484B0015A233</string>
+ <string>8B79347721F5371F006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -644,7 +646,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>553998201.254879</real>
+ <real>569718559.741974</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -661,10 +663,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/BitGlitter/BitGlitter.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/BitGlitter/BitGlitter.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>129 148 810 487 0 0 1440 878 </string>
+ <string>144 271 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/BitGlitter/source/BitGlitter.cpp b/plugins/MacVST/BitGlitter/source/BitGlitter.cpp
index 7e9cfdb..a1e1a9b 100755
--- a/plugins/MacVST/BitGlitter/source/BitGlitter.cpp
+++ b/plugins/MacVST/BitGlitter/source/BitGlitter.cpp
@@ -17,6 +17,9 @@ BitGlitter::BitGlitter(audioMasterCallback audioMaster) :
C = 0.5;
D = 1.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
+
ataLastSampleL = 0.0;
ataHalfwaySampleL = 0.0;
lastSampleL = 0.0;
diff --git a/plugins/MacVST/BitGlitter/source/BitGlitter.h b/plugins/MacVST/BitGlitter/source/BitGlitter.h
index d87e277..4f108cd 100755
--- a/plugins/MacVST/BitGlitter/source/BitGlitter.h
+++ b/plugins/MacVST/BitGlitter/source/BitGlitter.h
@@ -55,6 +55,9 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
+ long double fpNShapeL;
+ long double fpNShapeR;
+
double ataLastSampleL;
double ataHalfwaySampleL;
double ataDrySampleL;
diff --git a/plugins/MacVST/BitGlitter/source/BitGlitterProc.cpp b/plugins/MacVST/BitGlitter/source/BitGlitterProc.cpp
index 321d0b6..ff2968c 100755
--- a/plugins/MacVST/BitGlitter/source/BitGlitterProc.cpp
+++ b/plugins/MacVST/BitGlitter/source/BitGlitterProc.cpp
@@ -202,6 +202,14 @@ void BitGlitter::processReplacing(float **inputs, float **outputs, VstInt32 samp
outputSampleL = (drySampleL * (1.0-wet)) + (outputSampleL * wet);
outputSampleR = (drySampleR * (1.0-wet)) + (outputSampleR * wet);
}
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)outputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ outputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)outputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ outputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = outputSampleL;
*out2 = outputSampleR;
@@ -408,6 +416,17 @@ void BitGlitter::processDoubleReplacing(double **inputs, double **outputs, VstIn
outputSampleR = (drySampleR * (1.0-wet)) + (outputSampleR * wet);
}
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)outputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ outputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)outputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ outputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
+
*out1 = outputSampleL;
*out2 = outputSampleR;
diff --git a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/christopherjohnson.pbxuser
index 073b4c5..5810e3f 100644..100755
--- a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/christopherjohnson.pbxuser
@@ -10,7 +10,7 @@
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
- 199,
+ 389,
20,
48,
43,
@@ -49,13 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459201;
- PBXWorkspaceStateSaveDate = 528459201;
+ PBXPerProjectTemplateStateSaveDate = 569802073;
+ PBXWorkspaceStateSaveDate = 569802073;
};
perUserProjectItems = {
- 8B9D692D1F7EDCD2007AB60F /* PBXTextBookmark */ = 8B9D692D1F7EDCD2007AB60F /* PBXTextBookmark */;
- 8B9D77B71F7FA5E4007AB60F /* PBXTextBookmark */ = 8B9D77B71F7FA5E4007AB60F /* PBXTextBookmark */;
- 8BD42AEE1DE22B3A00869065 /* PBXTextBookmark */ = 8BD42AEE1DE22B3A00869065 /* PBXTextBookmark */;
+ 8BEF858D21F67E1D00FEF113 /* PBXTextBookmark */ = 8BEF858D21F67E1D00FEF113 /* PBXTextBookmark */;
+ 8BEF858E21F67E1D00FEF113 /* PBXTextBookmark */ = 8BEF858E21F67E1D00FEF113 /* PBXTextBookmark */;
+ 8BEF858F21F67E1D00FEF113 /* PBXTextBookmark */ = 8BEF858F21F67E1D00FEF113 /* PBXTextBookmark */;
+ 8BEF859021F67E1D00FEF113 /* PBXTextBookmark */ = 8BEF859021F67E1D00FEF113 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -63,9 +64,9 @@
};
2407DEB6089929BA00EB68BF /* BitShiftGain.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {754, 1482}}";
- sepNavSelRange = "{1650, 0}";
- sepNavVisRange = "{1613, 753}";
+ sepNavIntBoundsRect = "{{0, 0}, {754, 1534}}";
+ sepNavSelRange = "{3361, 19}";
+ sepNavVisRange = "{2730, 1669}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
@@ -79,17 +80,17 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {859, 20033}}";
+ sepNavIntBoundsRect = "{{0, 0}, {859, 20046}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10195, 852}";
+ sepNavVisRange = "{10195, 759}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* BitShiftGainProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1638}}";
- sepNavSelRange = "{1754, 0}";
- sepNavVisRange = "{395, 1500}";
+ sepNavIntBoundsRect = "{{0, 0}, {712, 1586}}";
+ sepNavSelRange = "{476, 8}";
+ sepNavVisRange = "{1474, 1209}";
sepNavWindowFrame = "{{476, 47}, {895, 831}}";
};
};
@@ -107,35 +108,45 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D692D1F7EDCD2007AB60F /* PBXTextBookmark */ = {
+ 8BEF858D21F67E1D00FEF113 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 852;
+ vrLen = 759;
vrLoc = 10195;
};
- 8B9D77B71F7FA5E4007AB60F /* PBXTextBookmark */ = {
+ 8BEF858E21F67E1D00FEF113 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- name = "audioeffectx.cpp: 307";
- rLen = 0;
- rLoc = 10616;
+ fRef = 2407DEB6089929BA00EB68BF /* BitShiftGain.cpp */;
+ name = "BitShiftGain.cpp: 90";
+ rLen = 19;
+ rLoc = 3361;
rType = 0;
- vrLen = 849;
- vrLoc = 10195;
+ vrLen = 1669;
+ vrLoc = 2730;
};
- 8BD42AEE1DE22B3A00869065 /* PBXTextBookmark */ = {
+ 8BEF858F21F67E1D00FEF113 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 2407DEB6089929BA00EB68BF /* BitShiftGain.cpp */;
- name = "BitShiftGain.cpp: 37";
+ fRef = 24D8286F09A914000093AEF8 /* BitShiftGainProc.cpp */;
+ name = "BitShiftGainProc.cpp: 56";
rLen = 0;
- rLoc = 1650;
+ rLoc = 1754;
+ rType = 0;
+ vrLen = 1226;
+ vrLoc = 1820;
+ };
+ 8BEF859021F67E1D00FEF113 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* BitShiftGainProc.cpp */;
+ name = "BitShiftGainProc.cpp: 17";
+ rLen = 8;
+ rLoc = 476;
rType = 0;
- vrLen = 753;
- vrLoc = 1613;
+ vrLen = 1209;
+ vrLoc = 1474;
};
8D01CCC60486CAD60068D4B7 /* BitShiftGain */ = {
activeExec = 0;
diff --git a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/christopherjohnson.perspectivev3
index 1b7af95..b5d4e93 100644..100755
--- a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/christopherjohnson.perspectivev3
@@ -256,8 +256,6 @@
<key>Layout</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -306,7 +304,7 @@
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
- <string>{{0, 0}, {185, 716}}</string>
+ <string>{{0, 0}, {185, 711}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@@ -316,14 +314,14 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {202, 734}}</string>
+ <string>{{0, 0}, {202, 729}}</string>
<key>GroupTreeTableConfiguration</key>
<array>
<string>MainColumn</string>
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>434 99 645 775 0 0 1440 878 </string>
+ <string>493 108 835 770 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -334,12 +332,14 @@
<key>Dock</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>audioeffectx.cpp</string>
+ <string>BitShiftGainProc.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,15 +347,16 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>audioeffectx.cpp</string>
+ <string>BitShiftGainProc.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D77B71F7FA5E4007AB60F</string>
+ <string>8BEF859021F67E1D00FEF113</string>
<key>history</key>
<array>
- <string>8BD42AEE1DE22B3A00869065</string>
- <string>8B9D692D1F7EDCD2007AB60F</string>
+ <string>8BEF858D21F67E1D00FEF113</string>
+ <string>8BEF858E21F67E1D00FEF113</string>
+ <string>8BEF858F21F67E1D00FEF113</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {438, 312}}</string>
+ <string>{{0, 0}, {628, 592}}</string>
<key>RubberWindowFrame</key>
- <string>434 99 645 775 0 0 1440 878 </string>
+ <string>493 108 835 770 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>312pt</string>
+ <string>592pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>417pt</string>
+ <string>132pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,9 +395,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {438, 390}}</string>
+ <string>{{10, 27}, {628, 105}}</string>
<key>RubberWindowFrame</key>
- <string>434 99 645 775 0 0 1440 878 </string>
+ <string>493 108 835 770 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -459,7 +460,7 @@
</dict>
</array>
<key>Proportion</key>
- <string>438pt</string>
+ <string>628pt</string>
</dict>
</array>
<key>Name</key>
@@ -478,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D77B81F7FA5E4007AB60F</string>
+ <string>8BEF859121F67E1D00FEF113</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D77B91F7FA5E4007AB60F</string>
+ <string>8BEF859221F67E1D00FEF113</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D77BA1F7FA5E4007AB60F</string>
+ <string>8BEF859321F67E1D00FEF113</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459236.94347501</real>
+ <real>569802269.42069495</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,11 +653,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D77BB1F7FA5E4007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/BitShiftGain/BitShiftGain.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>434 99 645 775 0 0 1440 878 </string>
+ <string>493 108 835 770 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index a80c038..a80c038 100644..100755
--- a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
index 5c38f94..5c38f94 100644..100755
--- a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
index 314de0f..314de0f 100644..100755
--- a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/spiadmin.mode1v3
index c572326..c572326 100644..100755
--- a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/spiadmin.mode1v3
+++ b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/spiadmin.mode1v3
diff --git a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/spiadmin.pbxuser
index df94780..df94780 100644..100755
--- a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/spiadmin.pbxuser
+++ b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/spiadmin.pbxuser
diff --git a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
index 8ee693f..8ee693f 100644..100755
--- a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
+++ b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
diff --git a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
index 5bccbcb..5bccbcb 100644..100755
--- a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
index a7bdd62..a7bdd62 100644..100755
--- a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
index 0df2de4..0df2de4 100644..100755
--- a/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
+++ b/plugins/MacVST/BitShiftGain/BitShiftGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
diff --git a/plugins/MacVST/Bite/Bite.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Bite/Bite.xcodeproj/christopherjohnson.pbxuser
index 110bab7..70f9ad3 100755
--- a/plugins/MacVST/Bite/Bite.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Bite/Bite.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459162;
- PBXWorkspaceStateSaveDate = 528459162;
+ PBXPerProjectTemplateStateSaveDate = 569718265;
+ PBXWorkspaceStateSaveDate = 569718265;
};
perUserProjectItems = {
+ 8B79344521F53610006E9731 /* PBXTextBookmark */ = 8B79344521F53610006E9731 /* PBXTextBookmark */;
8B9D778D1F7FA5B8007AB60F /* PBXTextBookmark */ = 8B9D778D1F7FA5B8007AB60F /* PBXTextBookmark */;
- 8BCA84A31EC2586000521D27 /* PBXTextBookmark */ = 8BCA84A31EC2586000521D27 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -78,7 +78,7 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {747, 19877}}";
+ sepNavIntBoundsRect = "{{0, 0}, {747, 19864}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
@@ -86,9 +86,9 @@
};
24D8286F09A914000093AEF8 /* BiteProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 3783}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 3458}}";
sepNavSelRange = "{4277, 0}";
- sepNavVisRange = "{0, 0}";
+ sepNavVisRange = "{0, 1351}";
sepNavWindowFrame = "{{205, 46}, {895, 831}}";
};
};
@@ -106,7 +106,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D778D1F7FA5B8007AB60F /* PBXTextBookmark */ = {
+ 8B79344521F53610006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
@@ -116,7 +116,7 @@
vrLen = 0;
vrLoc = 0;
};
- 8BCA84A31EC2586000521D27 /* PBXTextBookmark */ = {
+ 8B9D778D1F7FA5B8007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
diff --git a/plugins/MacVST/Bite/Bite.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Bite/Bite.xcodeproj/christopherjohnson.perspectivev3
index 991888c..58ed0f1 100755
--- a/plugins/MacVST/Bite/Bite.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Bite/Bite.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D778D1F7FA5B8007AB60F</string>
+ <string>8B79344521F53610006E9731</string>
<key>history</key>
<array>
- <string>8BCA84A31EC2586000521D27</string>
+ <string>8B9D778D1F7FA5B8007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D778E1F7FA5B8007AB60F</string>
+ <string>8B79344621F53610006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D778F1F7FA5B8007AB60F</string>
+ <string>8B79344721F53610006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D77901F7FA5B8007AB60F</string>
+ <string>8B79344821F53610006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459192.24507099</real>
+ <real>569718288.19823003</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D77911F7FA5B8007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Bite/Bite.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Bite/source/Bite.cpp b/plugins/MacVST/Bite/source/Bite.cpp
index b563f54..c9d0fcb 100755
--- a/plugins/MacVST/Bite/source/Bite.cpp
+++ b/plugins/MacVST/Bite/source/Bite.cpp
@@ -34,11 +34,8 @@ Bite::Bite(audioMasterCallback audioMaster) :
sampleHR = 0.0;
sampleIR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Bite/source/Bite.h b/plugins/MacVST/Bite/source/Bite.h
index d6f9e44..288ac7f 100755
--- a/plugins/MacVST/Bite/source/Bite.h
+++ b/plugins/MacVST/Bite/source/Bite.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double sampleAL;
double sampleBL;
diff --git a/plugins/MacVST/Bite/source/BiteProc.cpp b/plugins/MacVST/Bite/source/BiteProc.cpp
index 690a998..64e0ac4 100755
--- a/plugins/MacVST/Bite/source/BiteProc.cpp
+++ b/plugins/MacVST/Bite/source/BiteProc.cpp
@@ -17,9 +17,6 @@ void Bite::processReplacing(float **inputs, float **outputs, VstInt32 sampleFram
double overallscale = 1.3;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double gain = ((A*2.0)-1.0)*overallscale;
double outputgain = B;
@@ -119,25 +116,14 @@ void Bite::processReplacing(float **inputs, float **outputs, VstInt32 sampleFram
inputSampleR *= outputgain;
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -159,9 +145,6 @@ void Bite::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
double overallscale = 1.3;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double gain = ((A*2.0)-1.0)*overallscale;
double outputgain = B;
@@ -261,25 +244,16 @@ void Bite::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
inputSampleR *= outputgain;
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/BussColors4/BussColors4.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/BussColors4/BussColors4.xcodeproj/christopherjohnson.pbxuser
index 874e77e..56965b2 100755
--- a/plugins/MacVST/BussColors4/BussColors4.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/BussColors4/BussColors4.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 553995952;
- PBXWorkspaceStateSaveDate = 553995952;
+ PBXPerProjectTemplateStateSaveDate = 569718632;
+ PBXWorkspaceStateSaveDate = 569718632;
};
perUserProjectItems = {
- 8BBD1972210550260015A233 /* PBXTextBookmark */ = 8BBD1972210550260015A233 /* PBXTextBookmark */;
+ 8B7934BC21F53792006E9731 /* PBXTextBookmark */ = 8B7934BC21F53792006E9731 /* PBXTextBookmark */;
8BBD1973210550260015A233 /* PBXTextBookmark */ = 8BBD1973210550260015A233 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -62,9 +62,9 @@
};
2407DEB6089929BA00EB68BF /* BussColors4.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {747, 2613}}";
+ sepNavIntBoundsRect = "{{0, 0}, {747, 2392}}";
sepNavSelRange = "{6740, 15}";
- sepNavVisRange = "{44, 192}";
+ sepNavVisRange = "{44, 191}";
sepNavWindowFrame = "{{545, 42}, {895, 831}}";
};
};
@@ -86,10 +86,10 @@
};
24D8286F09A914000093AEF8 /* BussColors4Proc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 22958}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 21840}}";
sepNavSelRange = "{2156, 16}";
- sepNavVisRange = "{2297, 2204}";
- sepNavWindowFrame = "{{529, 47}, {895, 831}}";
+ sepNavVisRange = "{114530, 2497}";
+ sepNavWindowFrame = "{{399, 47}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
@@ -106,14 +106,14 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BBD1972210550260015A233 /* PBXTextBookmark */ = {
+ 8B7934BC21F53792006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* BussColors4.cpp */;
name = "BussColors4.cpp: 167";
rLen = 15;
rLoc = 6740;
rType = 0;
- vrLen = 328;
+ vrLen = 191;
vrLoc = 44;
};
8BBD1973210550260015A233 /* PBXTextBookmark */ = {
diff --git a/plugins/MacVST/BussColors4/BussColors4.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/BussColors4/BussColors4.xcodeproj/christopherjohnson.perspectivev3
index dff2c57..38ff207 100755
--- a/plugins/MacVST/BussColors4/BussColors4.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/BussColors4/BussColors4.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>567 362 810 487 0 0 1440 878 </string>
+ <string>567 361 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BBD1973210550260015A233</string>
+ <string>8B7934BC21F53792006E9731</string>
<key>history</key>
<array>
- <string>8BBD1972210550260015A233</string>
+ <string>8BBD1973210550260015A233</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
- <string>567 362 810 487 0 0 1440 878 </string>
+ <string>567 361 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
<key>RubberWindowFrame</key>
- <string>567 362 810 487 0 0 1440 878 </string>
+ <string>567 361 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBD1974210550260015A233</string>
+ <string>8B7934AA21F5376C006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBD1975210550260015A233</string>
+ <string>8B7934AB21F5376C006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBD1976210550260015A233</string>
+ <string>8B7934AC21F5376C006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>553996326.29762602</real>
+ <real>569718674.56684196</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,11 +651,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BBD1977210550260015A233</string>
+ <string>8B7934BD21F53792006E9731</string>
<string>/Users/christopherjohnson/Desktop/MacVST/BussColors4/BussColors4.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>567 362 810 487 0 0 1440 878 </string>
+ <string>567 361 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/BussColors4/source/BussColors4.cpp b/plugins/MacVST/BussColors4/source/BussColors4.cpp
index 720dbf9..c7de380 100755
--- a/plugins/MacVST/BussColors4/source/BussColors4.cpp
+++ b/plugins/MacVST/BussColors4/source/BussColors4.cpp
@@ -44,11 +44,8 @@ BussColors4::BussColors4(audioMasterCallback audioMaster) :
slowdynR = 0;
gcount = 0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
@@ -114,21 +111,6 @@ void BussColors4::setParameter(VstInt32 index, float value) {
case kParamD: D = value; break; //this is the popup, stored as a float
default: throw; // unknown parameter, shouldn't happen!
}
- //we can also set other defaults here, and do calculations that only have to happen
- //once when parameters actually change. Here is the 'popup' setting its (global) values.
- //variables can also be set in the processreplacing loop, and there they'll be set every buffersize
- //here they're set when a parameter's actually changed, which should be less frequent, but
- //you must use global variables in the BussColors4.h file to do it.
- switch((VstInt32)( D * 3.999 ))
- {
- case 0: fpFlip = true; break; //choice A
- case 1: fpFlip = false; break; //choice B
- case 2: break; //choice C
- case 3: break; //choice D
- default: break; //should not happen
- }
- //this relates to using D as a 'popup' and changing things based on that switch.
- //we are using fpFlip just because it's already there globally, as an example.
}
float BussColors4::getParameter(VstInt32 index) {
diff --git a/plugins/MacVST/BussColors4/source/BussColors4.h b/plugins/MacVST/BussColors4/source/BussColors4.h
index d07460e..6452555 100755
--- a/plugins/MacVST/BussColors4/source/BussColors4.h
+++ b/plugins/MacVST/BussColors4/source/BussColors4.h
@@ -68,11 +68,8 @@ private:
double slowdynR;
int gcount;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/BussColors4/source/BussColors4Proc.cpp b/plugins/MacVST/BussColors4/source/BussColors4Proc.cpp
index 2629ee8..b1b9451 100755
--- a/plugins/MacVST/BussColors4/source/BussColors4Proc.cpp
+++ b/plugins/MacVST/BussColors4/source/BussColors4Proc.cpp
@@ -31,9 +31,6 @@ void BussColors4::processReplacing(float **inputs, float **outputs, VstInt32 sam
double gain = 0.436;
double outgain = 1.0;
double bridgerectifier;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -795,25 +792,14 @@ void BussColors4::processReplacing(float **inputs, float **outputs, VstInt32 sam
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -849,9 +835,6 @@ void BussColors4::processDoubleReplacing(double **inputs, double **outputs, VstI
double gain = 0.436;
double outgain = 1.0;
double bridgerectifier;
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -1613,25 +1596,16 @@ void BussColors4::processDoubleReplacing(double **inputs, double **outputs, VstI
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/ButterComp/ButterComp.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ButterComp/ButterComp.xcodeproj/christopherjohnson.pbxuser
index 00c7e3d..4e51591 100755
--- a/plugins/MacVST/ButterComp/ButterComp.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ButterComp/ButterComp.xcodeproj/christopherjohnson.pbxuser
@@ -49,14 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 559962503;
- PBXWorkspaceStateSaveDate = 559962503;
+ PBXPerProjectTemplateStateSaveDate = 569718696;
+ PBXWorkspaceStateSaveDate = 569718696;
};
perUserProjectItems = {
8B42FD78216053420092969A /* PBXTextBookmark */ = 8B42FD78216053420092969A /* PBXTextBookmark */;
8B42FDE121605A6A0092969A /* PBXTextBookmark */ = 8B42FDE121605A6A0092969A /* PBXTextBookmark */;
- 8B42FDE221605A6A0092969A /* PBXBookmark */ = 8B42FDE221605A6A0092969A /* PBXBookmark */;
8B42FDE321605A6A0092969A /* PBXTextBookmark */ = 8B42FDE321605A6A0092969A /* PBXTextBookmark */;
+ 8B7934D121F537BA006E9731 /* PBXTextBookmark */ = 8B7934D121F537BA006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -72,9 +72,9 @@
};
245463B80991757100464AD3 /* ButterComp.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 910}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 1079}}";
sepNavSelRange = "{2665, 0}";
- sepNavVisRange = "{2626, 65}";
+ sepNavVisRange = "{2626, 64}";
sepNavWindowFrame = "{{545, 47}, {895, 831}}";
};
};
@@ -88,9 +88,9 @@
};
24D8286F09A914000093AEF8 /* ButterCompProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 5499}}";
- sepNavSelRange = "{11857, 0}";
- sepNavVisRange = "{11491, 1545}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 5070}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{10841, 1686}";
sepNavWindowFrame = "{{545, 47}, {895, 831}}";
};
};
@@ -125,12 +125,8 @@
rLen = 0;
rLoc = 12160;
rType = 0;
- vrLen = 83;
- vrLoc = 13577;
- };
- 8B42FDE221605A6A0092969A /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 245463B80991757100464AD3 /* ButterComp.h */;
+ vrLen = 0;
+ vrLoc = 12527;
};
8B42FDE321605A6A0092969A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
@@ -142,6 +138,16 @@
vrLen = 65;
vrLoc = 2626;
};
+ 8B7934D121F537BA006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 245463B80991757100464AD3 /* ButterComp.h */;
+ name = "ButterComp.h: 67";
+ rLen = 0;
+ rLoc = 2665;
+ rType = 0;
+ vrLen = 64;
+ vrLoc = 2626;
+ };
8D01CCC60486CAD60068D4B7 /* ButterComp */ = {
activeExec = 0;
};
diff --git a/plugins/MacVST/ButterComp/ButterComp.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ButterComp/ButterComp.xcodeproj/christopherjohnson.perspectivev3
index 240ab99..5148f75 100755
--- a/plugins/MacVST/ButterComp/ButterComp.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ButterComp/ButterComp.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>630 353 810 487 0 0 1440 878 </string>
+ <string>544 355 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,12 +351,12 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B42FDE321605A6A0092969A</string>
+ <string>8B7934D121F537BA006E9731</string>
<key>history</key>
<array>
<string>8B42FD78216053420092969A</string>
<string>8B42FDE121605A6A0092969A</string>
- <string>8B42FDE221605A6A0092969A</string>
+ <string>8B42FDE321605A6A0092969A</string>
</array>
</dict>
<key>SplitCount</key>
@@ -370,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 69}}</string>
+ <string>{{0, 0}, {603, 51}}</string>
<key>RubberWindowFrame</key>
- <string>630 353 810 487 0 0 1440 878 </string>
+ <string>544 355 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>69pt</string>
+ <string>51pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>372pt</string>
+ <string>390pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -395,9 +395,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 345}}</string>
+ <string>{{10, 27}, {603, 363}}</string>
<key>RubberWindowFrame</key>
- <string>630 353 810 487 0 0 1440 878 </string>
+ <string>544 355 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -479,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B42FDE421605A6A0092969A</string>
+ <string>8B7934D221F537BA006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B42FDE521605A6A0092969A</string>
+ <string>8B7934D321F537BA006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B42FDE621605A6A0092969A</string>
+ <string>8B7934D421F537BA006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -636,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>559962730.75885105</real>
+ <real>569718714.80265605</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -653,11 +653,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B42FDE721605A6A0092969A</string>
+ <string>8B7934D521F537BA006E9731</string>
<string>/Users/christopherjohnson/Desktop/MacVST/ButterComp/ButterComp.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>630 353 810 487 0 0 1440 878 </string>
+ <string>544 355 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/ButterComp/source/ButterComp.cpp b/plugins/MacVST/ButterComp/source/ButterComp.cpp
index e6a33f7..b3123e2 100755
--- a/plugins/MacVST/ButterComp/source/ButterComp.cpp
+++ b/plugins/MacVST/ButterComp/source/ButterComp.cpp
@@ -26,11 +26,8 @@ ButterComp::ButterComp(audioMasterCallback audioMaster) :
controlBnegR = 1.0;
targetposR = 1.0;
targetnegR = 1.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/ButterComp/source/ButterComp.h b/plugins/MacVST/ButterComp/source/ButterComp.h
index af6df66..5c9862b 100755
--- a/plugins/MacVST/ButterComp/source/ButterComp.h
+++ b/plugins/MacVST/ButterComp/source/ButterComp.h
@@ -65,11 +65,8 @@ private:
double controlBnegR;
double targetposR;
double targetnegR;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/ButterComp/source/ButterCompProc.cpp b/plugins/MacVST/ButterComp/source/ButterCompProc.cpp
index ea52946..d87030c 100755
--- a/plugins/MacVST/ButterComp/source/ButterCompProc.cpp
+++ b/plugins/MacVST/ButterComp/source/ButterCompProc.cpp
@@ -17,9 +17,6 @@ void ButterComp::processReplacing(float **inputs, float **outputs, VstInt32 samp
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputposL;
double inputnegL;
@@ -181,25 +178,14 @@ void ButterComp::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -221,9 +207,6 @@ void ButterComp::processDoubleReplacing(double **inputs, double **outputs, VstIn
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputposL;
double inputnegL;
@@ -385,25 +368,16 @@ void ButterComp::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/ButterComp2/ButterComp2.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ButterComp2/ButterComp2.xcodeproj/christopherjohnson.pbxuser
index e8a1ebf..26154bb 100755
--- a/plugins/MacVST/ButterComp2/ButterComp2.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ButterComp2/ButterComp2.xcodeproj/christopherjohnson.pbxuser
@@ -49,14 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 559961907;
- PBXWorkspaceStateSaveDate = 559961907;
+ PBXPerProjectTemplateStateSaveDate = 569718749;
+ PBXWorkspaceStateSaveDate = 569718749;
};
perUserProjectItems = {
- 8B42FDBF216057860092969A /* PBXTextBookmark */ = 8B42FDBF216057860092969A /* PBXTextBookmark */;
8B42FDC0216057860092969A /* PBXTextBookmark */ = 8B42FDC0216057860092969A /* PBXTextBookmark */;
- 8B42FDC4216057860092969A /* PBXTextBookmark */ = 8B42FDC4216057860092969A /* PBXTextBookmark */;
8B42FDC5216057860092969A /* PBXTextBookmark */ = 8B42FDC5216057860092969A /* PBXTextBookmark */;
+ 8B7934F221F537F3006E9731 /* PBXTextBookmark */ = 8B7934F221F537F3006E9731 /* PBXTextBookmark */;
+ 8B7934F621F537F3006E9731 /* PBXTextBookmark */ = 8B7934F621F537F3006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -88,9 +88,9 @@
};
24D8286F09A914000093AEF8 /* ButterComp2Proc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 6643}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 6292}}";
sepNavSelRange = "{7880, 0}";
- sepNavVisRange = "{7074, 1753}";
+ sepNavVisRange = "{7052, 1652}";
sepNavWindowFrame = "{{394, 47}, {895, 831}}";
};
};
@@ -108,7 +108,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B42FDBF216057860092969A /* PBXTextBookmark */ = {
+ 8B42FDC0216057860092969A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ButterComp2Proc.cpp */;
name = "ButterComp2Proc.cpp: 382";
@@ -116,37 +116,37 @@
rLoc = 11279;
rType = 0;
vrLen = 322;
- vrLoc = 11165;
+ vrLoc = 11177;
};
- 8B42FDC0216057860092969A /* PBXTextBookmark */ = {
+ 8B42FDC5216057860092969A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ButterComp2Proc.cpp */;
- name = "ButterComp2Proc.cpp: 382";
+ name = "ButterComp2Proc.cpp: 268";
rLen = 0;
- rLoc = 11279;
+ rLoc = 7880;
rType = 0;
- vrLen = 322;
- vrLoc = 11177;
+ vrLen = 1753;
+ vrLoc = 7074;
};
- 8B42FDC4216057860092969A /* PBXTextBookmark */ = {
+ 8B7934F221F537F3006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ButterComp2Proc.cpp */;
- name = "ButterComp2Proc.cpp: 382";
+ name = "ButterComp2Proc.cpp: 387";
rLen = 0;
rLoc = 11279;
rType = 0;
- vrLen = 1480;
- vrLoc = 10666;
+ vrLen = 365;
+ vrLoc = 6402;
};
- 8B42FDC5216057860092969A /* PBXTextBookmark */ = {
+ 8B7934F621F537F3006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ButterComp2Proc.cpp */;
- name = "ButterComp2Proc.cpp: 268";
+ name = "ButterComp2Proc.cpp: 278";
rLen = 0;
rLoc = 7880;
rType = 0;
- vrLen = 1753;
- vrLoc = 7074;
+ vrLen = 1652;
+ vrLoc = 7052;
};
8D01CCC60486CAD60068D4B7 /* ButterComp2 */ = {
activeExec = 0;
diff --git a/plugins/MacVST/ButterComp2/ButterComp2.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ButterComp2/ButterComp2.xcodeproj/christopherjohnson.perspectivev3
index 67bfac5..4fb4fe4 100755
--- a/plugins/MacVST/ButterComp2/ButterComp2.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ButterComp2/ButterComp2.xcodeproj/christopherjohnson.perspectivev3
@@ -241,10 +241,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B42FDC5216057860092969A</string>
+ <string>8B7934F621F537F3006E9731</string>
<key>history</key>
<array>
- <string>8B42FDC4216057860092969A</string>
+ <string>8B42FDC5216057860092969A</string>
</array>
</dict>
<key>SplitCount</key>
@@ -392,10 +392,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B42FDC0216057860092969A</string>
+ <string>8B7934F221F537F3006E9731</string>
<key>history</key>
<array>
- <string>8B42FDBF216057860092969A</string>
+ <string>8B42FDC0216057860092969A</string>
</array>
</dict>
<key>SplitCount</key>
@@ -409,18 +409,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>138 241 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -434,7 +434,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
<key>RubberWindowFrame</key>
<string>138 241 810 487 0 0 1440 878 </string>
</dict>
@@ -518,11 +518,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B42FDC1216057860092969A</string>
+ <string>8B7934F321F537F3006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B42FDC2216057860092969A</string>
+ <string>8B7934F421F537F3006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B42FDC3216057860092969A</string>
+ <string>8B7934F521F537F3006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -675,7 +675,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>559961990.80278695</real>
+ <real>569718771.40327895</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -693,7 +693,7 @@
<key>WindowOrderList</key>
<array>
<string>8B42FD99216056C30092969A</string>
- <string>/Users/christopherjohnson/Desktop/ButterComp2/ButterComp2.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/ButterComp2/ButterComp2.xcodeproj</string>
</array>
<key>WindowString</key>
<string>138 241 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/ButterComp2/source/ButterComp2Proc.cpp b/plugins/MacVST/ButterComp2/source/ButterComp2Proc.cpp
index 55ce488..67a6367 100755
--- a/plugins/MacVST/ButterComp2/source/ButterComp2Proc.cpp
+++ b/plugins/MacVST/ButterComp2/source/ButterComp2Proc.cpp
@@ -223,18 +223,14 @@ void ButterComp2::processReplacing(float **inputs, float **outputs, VstInt32 sam
flip = !flip;
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -244,12 +240,6 @@ void ButterComp2::processReplacing(float **inputs, float **outputs, VstInt32 sam
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void ButterComp2::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -468,18 +458,16 @@ void ButterComp2::processDoubleReplacing(double **inputs, double **outputs, VstI
flip = !flip;
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -489,10 +477,4 @@ void ButterComp2::processDoubleReplacing(double **inputs, double **outputs, VstI
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/C5RawBuss/C5RawBuss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/C5RawBuss/C5RawBuss.xcodeproj/christopherjohnson.pbxuser
index c0464d7..32a7430 100755
--- a/plugins/MacVST/C5RawBuss/C5RawBuss.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/C5RawBuss/C5RawBuss.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 538698967;
- PBXWorkspaceStateSaveDate = 538698967;
+ PBXPerProjectTemplateStateSaveDate = 569733207;
+ PBXWorkspaceStateSaveDate = 569733207;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -82,9 +82,9 @@
};
24D8286F09A914000093AEF8 /* C5RawBussProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 3744}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 3250}}";
sepNavSelRange = "{9641, 0}";
- sepNavVisRange = "{4872, 1806}";
+ sepNavVisRange = "{3352, 1921}";
sepNavWindowFrame = "{{9, 47}, {895, 831}}";
};
};
diff --git a/plugins/MacVST/C5RawBuss/C5RawBuss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/C5RawBuss/C5RawBuss.xcodeproj/christopherjohnson.perspectivev3
index 672431d..05bb702 100755
--- a/plugins/MacVST/C5RawBuss/C5RawBuss.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/C5RawBuss/C5RawBuss.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -321,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>21 469 688 404 0 0 1440 878 </string>
+ <string>488 410 688 404 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -360,7 +362,7 @@
<key>Frame</key>
<string>{{0, 0}, {481, 0}}</string>
<key>RubberWindowFrame</key>
- <string>21 469 688 404 0 0 1440 878 </string>
+ <string>488 410 688 404 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -384,6 +386,8 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {481, 331}}</string>
+ <key>RubberWindowFrame</key>
+ <string>488 410 688 404 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -438,8 +442,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {481, 331}}</string>
- <key>RubberWindowFrame</key>
- <string>21 469 688 404 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -467,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4E5763201BE4DB00B5DC2A</string>
+ <string>8B79351E21F57085006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4E5764201BE4DB00B5DC2A</string>
+ <string>8B79351F21F57085006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4E5765201BE4DB00B5DC2A</string>
+ <string>8B79352021F57085006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -624,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>538701942.76463199</real>
+ <real>569733253.24398398</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -641,11 +643,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B4E57C7201BF07600B5DC2A</string>
- <string>/Users/christopherjohnson/Desktop/C5RawBuss/C5RawBuss.xcodeproj</string>
+ <string>8B79352121F57085006E9731</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/C5RawBuss/C5RawBuss.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>21 469 688 404 0 0 1440 878 </string>
+ <string>488 410 688 404 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/C5RawBuss/source/C5RawBuss.cpp b/plugins/MacVST/C5RawBuss/source/C5RawBuss.cpp
index 14b4dc5..8fba0ef 100755
--- a/plugins/MacVST/C5RawBuss/source/C5RawBuss.cpp
+++ b/plugins/MacVST/C5RawBuss/source/C5RawBuss.cpp
@@ -17,11 +17,8 @@ C5RawBuss::C5RawBuss(audioMasterCallback audioMaster) :
lastSampleBussL = 0.0;
lastFXBussR = 0.0;
lastSampleBussR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/C5RawBuss/source/C5RawBuss.h b/plugins/MacVST/C5RawBuss/source/C5RawBuss.h
index 5a409bc..f4d01fe 100755
--- a/plugins/MacVST/C5RawBuss/source/C5RawBuss.h
+++ b/plugins/MacVST/C5RawBuss/source/C5RawBuss.h
@@ -52,11 +52,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double lastFXBussL;
double lastSampleBussL;
diff --git a/plugins/MacVST/C5RawBuss/source/C5RawBussProc.cpp b/plugins/MacVST/C5RawBuss/source/C5RawBussProc.cpp
index 1bf5eec..fab4612 100755
--- a/plugins/MacVST/C5RawBuss/source/C5RawBussProc.cpp
+++ b/plugins/MacVST/C5RawBuss/source/C5RawBussProc.cpp
@@ -14,9 +14,6 @@ void C5RawBuss::processReplacing(float **inputs, float **outputs, VstInt32 sampl
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double centering = A * 0.5;
centering = 1.0 - pow(centering,5);
@@ -111,25 +108,14 @@ void C5RawBuss::processReplacing(float **inputs, float **outputs, VstInt32 sampl
//build new signal off what was present in output last time
//slew aspect
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -148,9 +134,6 @@ void C5RawBuss::processDoubleReplacing(double **inputs, double **outputs, VstInt
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double centering = A * 0.5;
centering = 1.0 - pow(centering,5);
@@ -245,25 +228,16 @@ void C5RawBuss::processDoubleReplacing(double **inputs, double **outputs, VstInt
//build new signal off what was present in output last time
//slew aspect
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/christopherjohnson.pbxuser
index 2c29100..6a38937 100755
--- a/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* C5RawChannel */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 538698973;
- PBXWorkspaceStateSaveDate = 538698973;
+ PBXPerProjectTemplateStateSaveDate = 569733279;
+ PBXWorkspaceStateSaveDate = 569733279;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* C5RawChannel */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/christopherjohnson.perspectivev3
index b091f94..cd0fdba 100755
--- a/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/christopherjohnson.perspectivev3
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4E577C201BE4F400B5DC2A</string>
+ <string>8B79353421F570A9006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4E577D201BE4F400B5DC2A</string>
+ <string>8B79353521F570A9006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4E577E201BE4F400B5DC2A</string>
+ <string>8B79353621F570A9006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>538705094.40063703</real>
+ <real>569733289.17203903</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/C5RawChannel/C5RawChannel.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/C5RawChannel/C5RawChannel.xcodeproj</string>
</array>
<key>WindowString</key>
<string>24 126 701 419 0 0 1440 878 </string>
diff --git a/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/project.pbxproj b/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/project.pbxproj
index e73c1b3..5287fa9 100755
--- a/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/C5RawChannel/C5RawChannel.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* C5RawChannel */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "C5RawChannel" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* C5RawChannel */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/C5RawChannel/source/C5RawChannel.cpp b/plugins/MacVST/C5RawChannel/source/C5RawChannel.cpp
index b02a07d..ffc2ecf 100755
--- a/plugins/MacVST/C5RawChannel/source/C5RawChannel.cpp
+++ b/plugins/MacVST/C5RawChannel/source/C5RawChannel.cpp
@@ -17,11 +17,8 @@ C5RawChannel::C5RawChannel(audioMasterCallback audioMaster) :
lastSampleChannelL = 0.0;
lastFXChannelR = 0.0;
lastSampleChannelR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/C5RawChannel/source/C5RawChannel.h b/plugins/MacVST/C5RawChannel/source/C5RawChannel.h
index 2281961..3ce3e84 100755
--- a/plugins/MacVST/C5RawChannel/source/C5RawChannel.h
+++ b/plugins/MacVST/C5RawChannel/source/C5RawChannel.h
@@ -52,11 +52,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double lastFXChannelL;
double lastSampleChannelL;
diff --git a/plugins/MacVST/C5RawChannel/source/C5RawChannelProc.cpp b/plugins/MacVST/C5RawChannel/source/C5RawChannelProc.cpp
index 41f949e..b2679ff 100755
--- a/plugins/MacVST/C5RawChannel/source/C5RawChannelProc.cpp
+++ b/plugins/MacVST/C5RawChannel/source/C5RawChannelProc.cpp
@@ -14,9 +14,6 @@ void C5RawChannel::processReplacing(float **inputs, float **outputs, VstInt32 sa
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double centering = A * 0.5;
centering = 1.0 - pow(centering,5);
@@ -110,25 +107,14 @@ void C5RawChannel::processReplacing(float **inputs, float **outputs, VstInt32 sa
inputSampleR = sin(inputSampleR);
//amplitude aspect
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -147,9 +133,6 @@ void C5RawChannel::processDoubleReplacing(double **inputs, double **outputs, Vst
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double centering = A * 0.5;
centering = 1.0 - pow(centering,5);
@@ -243,25 +226,16 @@ void C5RawChannel::processDoubleReplacing(double **inputs, double **outputs, Vst
inputSampleR = sin(inputSampleR);
//amplitude aspect
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/CStrip/CStrip.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/CStrip/CStrip.xcodeproj/christopherjohnson.pbxuser
index 6f086f0..84d9838 100755
--- a/plugins/MacVST/CStrip/CStrip.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/CStrip/CStrip.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,13 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 541888518;
- PBXWorkspaceStateSaveDate = 541888518;
+ PBXPerProjectTemplateStateSaveDate = 569734170;
+ PBXWorkspaceStateSaveDate = 569734170;
};
perUserProjectItems = {
8B181AD0204C900D00516BEE /* PBXTextBookmark */ = 8B181AD0204C900D00516BEE /* PBXTextBookmark */;
8B181AEB204C93FE00516BEE /* PBXTextBookmark */ = 8B181AEB204C93FE00516BEE /* PBXTextBookmark */;
- 8B8E3C051FC2409000F10C24 /* PBXTextBookmark */ = 8B8E3C051FC2409000F10C24 /* PBXTextBookmark */;
+ 8B79373621F57427006E9731 /* PBXTextBookmark */ = 8B79373621F57427006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -87,9 +87,9 @@
};
24D8286F09A914000093AEF8 /* CStripProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {761, 19695}}";
+ sepNavIntBoundsRect = "{{0, 0}, {635, 19565}}";
sepNavSelRange = "{27530, 0}";
- sepNavVisRange = "{6438, 114}";
+ sepNavVisRange = "{6540, 22}";
sepNavWindowFrame = "{{533, 46}, {895, 831}}";
};
};
@@ -127,15 +127,15 @@
vrLen = 114;
vrLoc = 6438;
};
- 8B8E3C051FC2409000F10C24 /* PBXTextBookmark */ = {
+ 8B79373621F57427006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* CStripProc.cpp */;
- name = "CStripProc.cpp: 139";
+ name = "CStripProc.cpp: 761";
rLen = 0;
rLoc = 27530;
rType = 0;
- vrLen = 436;
- vrLoc = 6443;
+ vrLen = 22;
+ vrLoc = 6540;
};
8D01CCC60486CAD60068D4B7 /* CStrip */ = {
activeExec = 0;
diff --git a/plugins/MacVST/CStrip/CStrip.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/CStrip/CStrip.xcodeproj/christopherjohnson.perspectivev3
index d37c29c..90086a5 100755
--- a/plugins/MacVST/CStrip/CStrip.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/CStrip/CStrip.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>628 335 810 487 0 0 1440 878 </string>
+ <string>568 285 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,11 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B181AEB204C93FE00516BEE</string>
+ <string>8B79373621F57427006E9731</string>
<key>history</key>
<array>
<string>8B181AD0204C900D00516BEE</string>
- <string>8B8E3C051FC2409000F10C24</string>
+ <string>8B181AEB204C93FE00516BEE</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 69}}</string>
+ <string>{{0, 0}, {603, 51}}</string>
<key>RubberWindowFrame</key>
- <string>628 335 810 487 0 0 1440 878 </string>
+ <string>568 285 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>69pt</string>
+ <string>51pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>372pt</string>
+ <string>390pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,9 +394,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 345}}</string>
+ <string>{{10, 27}, {603, 363}}</string>
<key>RubberWindowFrame</key>
- <string>628 335 810 487 0 0 1440 878 </string>
+ <string>568 285 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -478,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B181AD2204C900D00516BEE</string>
+ <string>8B79373721F57427006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B181AD3204C900D00516BEE</string>
+ <string>8B79373821F57427006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B181AD4204C900D00516BEE</string>
+ <string>8B79373921F57427006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>541889534.51824105</real>
+ <real>569734183.18676102</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -655,7 +655,7 @@
<string>/Users/christopherjohnson/Desktop/MacVST/CStrip/CStrip.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>628 335 810 487 0 0 1440 878 </string>
+ <string>568 285 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/CStrip/source/CStrip.cpp b/plugins/MacVST/CStrip/source/CStrip.cpp
index 1c24d1b..2049ab8 100755
--- a/plugins/MacVST/CStrip/source/CStrip.cpp
+++ b/plugins/MacVST/CStrip/source/CStrip.cpp
@@ -153,11 +153,8 @@ CStrip::CStrip(audioMasterCallback audioMaster) :
nvgRA = nvgRB = 0.0;
//end ButterComp
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/CStrip/source/CStrip.h b/plugins/MacVST/CStrip/source/CStrip.h
index 10f6729..cc9f722 100755
--- a/plugins/MacVST/CStrip/source/CStrip.h
+++ b/plugins/MacVST/CStrip/source/CStrip.h
@@ -63,11 +63,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double lastSampleL;
diff --git a/plugins/MacVST/CStrip/source/CStripProc.cpp b/plugins/MacVST/CStrip/source/CStripProc.cpp
index 272b9b6..60ce59c 100755
--- a/plugins/MacVST/CStrip/source/CStripProc.cpp
+++ b/plugins/MacVST/CStrip/source/CStripProc.cpp
@@ -20,10 +20,8 @@ void CStrip::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
overallscale = getSampleRate();
compscale = compscale * overallscale;
//compscale is the one that's 1 or something like 2.2 for 96K rates
- float fpTemp;
long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
-
+ long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -728,25 +726,14 @@ void CStrip::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
inputSampleR *= outputgain;
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -771,10 +758,8 @@ void CStrip::processDoubleReplacing(double **inputs, double **outputs, VstInt32
overallscale = getSampleRate();
compscale = compscale * overallscale;
//compscale is the one that's 1 or something like 2.2 for 96K rates
- double fpTemp;
long double fpOld = 0.618033988749894848204586; //golden ratio!
long double fpNew = 1.0 - fpOld;
-
long double inputSampleL;
long double inputSampleR;
@@ -1479,25 +1464,16 @@ void CStrip::processDoubleReplacing(double **inputs, double **outputs, VstInt32
inputSampleR *= outputgain;
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Capacitor/Capacitor.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Capacitor/Capacitor.xcodeproj/christopherjohnson.pbxuser
index a60059d..cb9af70 100755
--- a/plugins/MacVST/Capacitor/Capacitor.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Capacitor/Capacitor.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459434;
- PBXWorkspaceStateSaveDate = 528459434;
+ PBXPerProjectTemplateStateSaveDate = 569733320;
+ PBXWorkspaceStateSaveDate = 569733320;
};
perUserProjectItems = {
8B4847521F6D432A007BD0D0 /* PBXTextBookmark */ = 8B4847521F6D432A007BD0D0 /* PBXTextBookmark */;
- 8B9D699F1F7EDD69007AB60F /* PBXTextBookmark */ = 8B9D699F1F7EDD69007AB60F /* PBXTextBookmark */;
+ 8B79355E21F570E8006E9731 /* PBXTextBookmark */ = 8B79355E21F570E8006E9731 /* PBXTextBookmark */;
8B9D781B1F7FA737007AB60F /* PBXTextBookmark */ = 8B9D781B1F7FA737007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -71,7 +71,7 @@
};
245463B80991757100464AD3 /* Capacitor.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 1482}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 1417}}";
sepNavSelRange = "{2958, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{375, 39}, {895, 831}}";
@@ -87,9 +87,9 @@
};
24D8286F09A914000093AEF8 /* CapacitorProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {979, 5811}}";
+ sepNavIntBoundsRect = "{{0, 0}, {979, 5096}}";
sepNavSelRange = "{1264, 0}";
- sepNavVisRange = "{970, 2251}";
+ sepNavVisRange = "{21333, 3687}";
sepNavWindowFrame = "{{368, 44}, {1026, 834}}";
};
};
@@ -117,15 +117,15 @@
vrLen = 166;
vrLoc = 20835;
};
- 8B9D699F1F7EDD69007AB60F /* PBXTextBookmark */ = {
+ 8B79355E21F570E8006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* Capacitor.h */;
name = "Capacitor.h: 82";
rLen = 0;
rLoc = 2958;
rType = 0;
- vrLen = 36;
- vrLoc = 2376;
+ vrLen = 0;
+ vrLoc = 0;
};
8B9D781B1F7FA737007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/Capacitor/Capacitor.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Capacitor/Capacitor.xcodeproj/christopherjohnson.perspectivev3
index 486401d..3eed19a 100755
--- a/plugins/MacVST/Capacitor/Capacitor.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Capacitor/Capacitor.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>476 267 810 487 0 0 1440 878 </string>
+ <string>443 261 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,11 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D781B1F7FA737007AB60F</string>
+ <string>8B79355E21F570E8006E9731</string>
<key>history</key>
<array>
<string>8B4847521F6D432A007BD0D0</string>
- <string>8B9D699F1F7EDD69007AB60F</string>
+ <string>8B9D781B1F7FA737007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 20}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>476 267 810 487 0 0 1440 878 </string>
+ <string>443 261 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>20pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>421pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,9 +394,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 394}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
- <string>476 267 810 487 0 0 1440 878 </string>
+ <string>443 261 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -478,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D781C1F7FA737007AB60F</string>
+ <string>8B79355F21F570E8006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D781D1F7FA737007AB60F</string>
+ <string>8B79356021F570E8006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D781E1F7FA737007AB60F</string>
+ <string>8B79356121F570E8006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459575.56228501</real>
+ <real>569733352.25392997</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,11 +652,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D781F1F7FA737007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Capacitor/Capacitor.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>476 267 810 487 0 0 1440 878 </string>
+ <string>443 261 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Capacitor/source/Capacitor.cpp b/plugins/MacVST/Capacitor/source/Capacitor.cpp
index 2a62df6..0ade9c9 100755
--- a/plugins/MacVST/Capacitor/source/Capacitor.cpp
+++ b/plugins/MacVST/Capacitor/source/Capacitor.cpp
@@ -51,11 +51,8 @@ Capacitor::Capacitor(audioMasterCallback audioMaster) :
lastHighpass = 1000.0;
lastWet = 1000.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Capacitor/source/Capacitor.h b/plugins/MacVST/Capacitor/source/Capacitor.h
index d80c676..0799d39 100755
--- a/plugins/MacVST/Capacitor/source/Capacitor.h
+++ b/plugins/MacVST/Capacitor/source/Capacitor.h
@@ -94,11 +94,8 @@ private:
double lastHighpass;
double lastWet;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Capacitor/source/CapacitorProc.cpp b/plugins/MacVST/Capacitor/source/CapacitorProc.cpp
index 6accb0d..6b3582b 100755
--- a/plugins/MacVST/Capacitor/source/CapacitorProc.cpp
+++ b/plugins/MacVST/Capacitor/source/CapacitorProc.cpp
@@ -30,9 +30,6 @@ void Capacitor::processReplacing(float **inputs, float **outputs, VstInt32 sampl
double invHighpass;
double dry;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -182,25 +179,14 @@ void Capacitor::processReplacing(float **inputs, float **outputs, VstInt32 sampl
inputSampleL = (drySampleL * dry) + (inputSampleL * wet);
inputSampleR = (drySampleR * dry) + (inputSampleR * wet);
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -235,9 +221,6 @@ void Capacitor::processDoubleReplacing(double **inputs, double **outputs, VstInt
double invHighpass;
double dry;
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -387,25 +370,16 @@ void Capacitor::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleL = (drySampleL * dry) + (inputSampleL * wet);
inputSampleR = (drySampleR * dry) + (inputSampleR * wet);
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Channel6/Channel6.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Channel6/Channel6.xcodeproj/christopherjohnson.pbxuser
index 4f94aef..ca06db1 100755
--- a/plugins/MacVST/Channel6/Channel6.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Channel6/Channel6.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 553996149;
- PBXWorkspaceStateSaveDate = 553996149;
+ PBXPerProjectTemplateStateSaveDate = 569801998;
+ PBXWorkspaceStateSaveDate = 569801998;
};
perUserProjectItems = {
8BBD195D21054F810015A233 /* PBXTextBookmark */ = 8BBD195D21054F810015A233 /* PBXTextBookmark */;
- 8BBD195E21054F810015A233 /* PBXBookmark */ = 8BBD195E21054F810015A233 /* PBXBookmark */;
- 8BBD195F21054F810015A233 /* PBXTextBookmark */ = 8BBD195F21054F810015A233 /* PBXTextBookmark */;
+ 8BEF857021F67D4F00FEF113 /* PBXTextBookmark */ = 8BEF857021F67D4F00FEF113 /* PBXTextBookmark */;
+ 8BEF857121F67D4F00FEF113 /* PBXBookmark */ = 8BEF857121F67D4F00FEF113 /* PBXBookmark */;
+ 8BEF857221F67D4F00FEF113 /* PBXTextBookmark */ = 8BEF857221F67D4F00FEF113 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -63,9 +64,9 @@
};
2407DEB6089929BA00EB68BF /* Channel6.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 2197}}";
+ sepNavIntBoundsRect = "{{0, 0}, {740, 2106}}";
sepNavSelRange = "{663, 0}";
- sepNavVisRange = "{0, 1975}";
+ sepNavVisRange = "{5547, 903}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
@@ -87,9 +88,9 @@
};
24D8286F09A914000093AEF8 /* Channel6Proc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {712, 3939}}";
+ sepNavIntBoundsRect = "{{0, 0}, {712, 3510}}";
sepNavSelRange = "{9237, 0}";
- sepNavVisRange = "{1490, 318}";
+ sepNavVisRange = "{1588, 1022}";
sepNavWindowFrame = "{{4, 47}, {895, 831}}";
};
};
@@ -117,19 +118,29 @@
vrLen = 280;
vrLoc = 10459;
};
- 8BBD195E21054F810015A233 /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 24D8286F09A914000093AEF8 /* Channel6Proc.cpp */;
- };
- 8BBD195F21054F810015A233 /* PBXTextBookmark */ = {
+ 8BEF857021F67D4F00FEF113 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* Channel6Proc.cpp */;
- name = "Channel6Proc.cpp: 267";
+ name = "Channel6Proc.cpp: 265";
rLen = 0;
rLoc = 9237;
rType = 0;
- vrLen = 318;
- vrLoc = 1490;
+ vrLen = 1022;
+ vrLoc = 1588;
+ };
+ 8BEF857121F67D4F00FEF113 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 2407DEB6089929BA00EB68BF /* Channel6.cpp */;
+ };
+ 8BEF857221F67D4F00FEF113 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2407DEB6089929BA00EB68BF /* Channel6.cpp */;
+ name = "Channel6.cpp: 26";
+ rLen = 0;
+ rLoc = 663;
+ rType = 0;
+ vrLen = 903;
+ vrLoc = 5547;
};
8D01CCC60486CAD60068D4B7 /* Channel6 */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Channel6/Channel6.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Channel6/Channel6.xcodeproj/christopherjohnson.perspectivev3
index 9dbd71c..e269302 100755
--- a/plugins/MacVST/Channel6/Channel6.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Channel6/Channel6.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>18 291 810 487 0 0 1440 878 </string>
+ <string>475 316 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -339,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Channel6Proc.cpp</string>
+ <string>Channel6.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,15 +347,16 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Channel6Proc.cpp</string>
+ <string>Channel6.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BBD195F21054F810015A233</string>
+ <string>8BEF857221F67D4F00FEF113</string>
<key>history</key>
<array>
<string>8BBD195D21054F810015A233</string>
- <string>8BBD195E21054F810015A233</string>
+ <string>8BEF857021F67D4F00FEF113</string>
+ <string>8BEF857121F67D4F00FEF113</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 117}}</string>
+ <string>{{0, 0}, {603, 353}}</string>
<key>RubberWindowFrame</key>
- <string>18 291 810 487 0 0 1440 878 </string>
+ <string>475 316 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>117pt</string>
+ <string>353pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>324pt</string>
+ <string>88pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,9 +395,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 297}}</string>
+ <string>{{10, 27}, {603, 61}}</string>
<key>RubberWindowFrame</key>
- <string>18 291 810 487 0 0 1440 878 </string>
+ <string>475 316 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -478,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBD196021054F810015A233</string>
+ <string>8BEF857321F67D4F00FEF113</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBD196121054F810015A233</string>
+ <string>8BEF857421F67D4F00FEF113</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBD196221054F810015A233</string>
+ <string>8BEF857521F67D4F00FEF113</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>553996161.14167202</real>
+ <real>569802063.73693204</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,11 +653,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BBD196321054F810015A233</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Channel6/Channel6.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>18 291 810 487 0 0 1440 878 </string>
+ <string>475 316 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Channel6/source/Channel6Proc.cpp b/plugins/MacVST/Channel6/source/Channel6Proc.cpp
index d206851..9f16b2a 100755
--- a/plugins/MacVST/Channel6/source/Channel6Proc.cpp
+++ b/plugins/MacVST/Channel6/source/Channel6Proc.cpp
@@ -121,18 +121,14 @@ void Channel6::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleR *= output;
}
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -142,12 +138,6 @@ void Channel6::processReplacing(float **inputs, float **outputs, VstInt32 sample
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void Channel6::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -264,18 +254,16 @@ void Channel6::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleR *= output;
}
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -285,10 +273,4 @@ void Channel6::processDoubleReplacing(double **inputs, double **outputs, VstInt3
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/Chorus/Chorus.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Chorus/Chorus.xcodeproj/christopherjohnson.pbxuser
index d5706d0..21526ae 100755
--- a/plugins/MacVST/Chorus/Chorus.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Chorus/Chorus.xcodeproj/christopherjohnson.pbxuser
@@ -51,13 +51,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459635;
- PBXWorkspaceStateSaveDate = 528459635;
+ PBXPerProjectTemplateStateSaveDate = 569733572;
+ PBXWorkspaceStateSaveDate = 569733572;
};
perUserProjectItems = {
- 8B4847DF1F6D5369007BD0D0 /* PBXTextBookmark */ = 8B4847DF1F6D5369007BD0D0 /* PBXTextBookmark */;
- 8B9D69E11F7EDDC0007AB60F /* PBXTextBookmark */ = 8B9D69E11F7EDDC0007AB60F /* PBXTextBookmark */;
- 8B9D785D1F7FA7A5007AB60F /* PBXTextBookmark */ = 8B9D785D1F7FA7A5007AB60F /* PBXTextBookmark */;
+ 8B7935DD21F571DE006E9731 /* PBXTextBookmark */ = 8B7935DD21F571DE006E9731 /* PBXTextBookmark */;
+ 8B7935EF21F5721C006E9731 /* PBXTextBookmark */ = 8B7935EF21F5721C006E9731 /* PBXTextBookmark */;
+ 8B7935F021F5721C006E9731 /* PBXTextBookmark */ = 8B7935F021F5721C006E9731 /* PBXTextBookmark */;
+ 8B7935F121F5721C006E9731 /* PBXTextBookmark */ = 8B7935F121F5721C006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -65,18 +66,18 @@
};
2407DEB6089929BA00EB68BF /* Chorus.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 2002}}";
+ sepNavIntBoundsRect = "{{0, 0}, {712, 2041}}";
sepNavSelRange = "{461, 273}";
- sepNavVisRange = "{0, 1929}";
+ sepNavVisRange = "{613, 710}";
sepNavWindowFrame = "{{539, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Chorus.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 1274}}";
- sepNavSelRange = "{2789, 0}";
- sepNavVisRange = "{2681, 110}";
- sepNavWindowFrame = "{{595, 47}, {895, 831}}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 1066}}";
+ sepNavSelRange = "{2738, 0}";
+ sepNavVisRange = "{489, 2303}";
+ sepNavWindowFrame = "{{545, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
@@ -89,9 +90,9 @@
};
24D8286F09A914000093AEF8 /* ChorusProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 4264}}";
- sepNavSelRange = "{7772, 0}";
- sepNavVisRange = "{550, 2073}";
+ sepNavIntBoundsRect = "{{0, 0}, {775, 4095}}";
+ sepNavSelRange = "{1086, 0}";
+ sepNavVisRange = "{5380, 625}";
sepNavWindowFrame = "{{545, 47}, {895, 831}}";
};
};
@@ -109,35 +110,45 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B4847DF1F6D5369007BD0D0 /* PBXTextBookmark */ = {
+ 8B7935DD21F571DE006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 245463B80991757100464AD3 /* Chorus.h */;
+ name = "Chorus.h: 81";
+ rLen = 0;
+ rLoc = 2792;
+ rType = 0;
+ vrLen = 468;
+ vrLoc = 2259;
+ };
+ 8B7935EF21F5721C006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ChorusProc.cpp */;
- name = "ChorusProc.cpp: 42";
+ name = "ChorusProc.cpp: 43";
rLen = 0;
rLoc = 1086;
rType = 0;
- vrLen = 272;
- vrLoc = 44;
+ vrLen = 625;
+ vrLoc = 5380;
};
- 8B9D69E11F7EDDC0007AB60F /* PBXTextBookmark */ = {
+ 8B7935F021F5721C006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* Chorus.h */;
- name = "Chorus.h: 75";
- rLen = 0;
- rLoc = 2789;
+ fRef = 2407DEB6089929BA00EB68BF /* Chorus.cpp */;
+ name = "Chorus.cpp: 19";
+ rLen = 273;
+ rLoc = 461;
rType = 0;
- vrLen = 128;
- vrLoc = 2663;
+ vrLen = 696;
+ vrLoc = 613;
};
- 8B9D785D1F7FA7A5007AB60F /* PBXTextBookmark */ = {
+ 8B7935F121F5721C006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* Chorus.h */;
- name = "Chorus.h: 75";
- rLen = 0;
- rLoc = 2789;
+ fRef = 2407DEB6089929BA00EB68BF /* Chorus.cpp */;
+ name = "Chorus.cpp: 19";
+ rLen = 273;
+ rLoc = 461;
rType = 0;
- vrLen = 110;
- vrLoc = 2681;
+ vrLen = 710;
+ vrLoc = 613;
};
8D01CCC60486CAD60068D4B7 /* Chorus */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Chorus/Chorus.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Chorus/Chorus.xcodeproj/christopherjohnson.perspectivev3
index b9cb14f..b93e4c2 100755
--- a/plugins/MacVST/Chorus/Chorus.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Chorus/Chorus.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>7</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -339,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Chorus.h</string>
+ <string>Chorus.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,15 +347,16 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Chorus.h</string>
+ <string>Chorus.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D785D1F7FA7A5007AB60F</string>
+ <string>8B7935F121F5721C006E9731</string>
<key>history</key>
<array>
- <string>8B4847DF1F6D5369007BD0D0</string>
- <string>8B9D69E11F7EDDC0007AB60F</string>
+ <string>8B7935DD21F571DE006E9731</string>
+ <string>8B7935EF21F5721C006E9731</string>
+ <string>8B7935F021F5721C006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 102}}</string>
+ <string>{{0, 0}, {603, 300}}</string>
<key>RubberWindowFrame</key>
<string>628 274 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>102pt</string>
+ <string>300pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>339pt</string>
+ <string>141pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,9 +395,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 312}}</string>
- <key>RubberWindowFrame</key>
- <string>628 274 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 114}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -450,7 +449,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 363}}</string>
+ <string>{{10, 27}, {603, 114}}</string>
+ <key>RubberWindowFrame</key>
+ <string>628 274 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -478,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D785E1F7FA7A5007AB60F</string>
+ <string>8B7935F221F5721C006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D785F1F7FA7A5007AB60F</string>
+ <string>8B7935F321F5721C006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D78601F7FA7A5007AB60F</string>
+ <string>8B7935F421F5721C006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -655,7 +656,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459685.88356102</real>
+ <real>569733660.57449198</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -672,7 +673,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D78611F7FA7A5007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Chorus/Chorus.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Chorus/source/Chorus.cpp b/plugins/MacVST/Chorus/source/Chorus.cpp
index a0699ec..1f3965a 100755
--- a/plugins/MacVST/Chorus/source/Chorus.cpp
+++ b/plugins/MacVST/Chorus/source/Chorus.cpp
@@ -27,12 +27,9 @@ Chorus::Chorus(audioMasterCallback audioMaster) :
airEvenR = 0.0;
airOddR = 0.0;
airFactorR = 0.0;
-
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Chorus/source/Chorus.h b/plugins/MacVST/Chorus/source/Chorus.h
index fb2fb44..5508ac3 100755
--- a/plugins/MacVST/Chorus/source/Chorus.h
+++ b/plugins/MacVST/Chorus/source/Chorus.h
@@ -54,11 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
const static int totalsamples = 16386;
float dL[totalsamples];
@@ -73,6 +70,7 @@ private:
double airEvenR;
double airOddR;
double airFactorR;
+ bool fpFlip;
float A;
float B;
diff --git a/plugins/MacVST/Chorus/source/ChorusProc.cpp b/plugins/MacVST/Chorus/source/ChorusProc.cpp
index aed2bc0..368ade7 100755
--- a/plugins/MacVST/Chorus/source/ChorusProc.cpp
+++ b/plugins/MacVST/Chorus/source/ChorusProc.cpp
@@ -30,9 +30,6 @@ void Chorus::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
double offset;
//this is a double buffer so we will be splitting it in two
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -134,26 +131,16 @@ void Chorus::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
inputSampleL = (inputSampleL * wet) + (drySampleL * dry);
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
-
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -188,9 +175,6 @@ void Chorus::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double offset;
//this is a double buffer so we will be splitting it in two
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -293,25 +277,17 @@ void Chorus::processDoubleReplacing(double **inputs, double **outputs, VstInt32
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/ChorusEnsemble/ChorusEnsemble.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ChorusEnsemble/ChorusEnsemble.xcodeproj/christopherjohnson.pbxuser
index bd6d0eb..bad7b6e 100755
--- a/plugins/MacVST/ChorusEnsemble/ChorusEnsemble.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ChorusEnsemble/ChorusEnsemble.xcodeproj/christopherjohnson.pbxuser
@@ -51,8 +51,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459695;
- PBXWorkspaceStateSaveDate = 528459695;
+ PBXPerProjectTemplateStateSaveDate = 569733687;
+ PBXWorkspaceStateSaveDate = 569733687;
+ };
+ perUserProjectItems = {
+ 8B79361421F57279006E9731 /* PBXTextBookmark */ = 8B79361421F57279006E9731 /* PBXTextBookmark */;
+ 8B79361521F57279006E9731 /* PBXTextBookmark */ = 8B79361521F57279006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -60,17 +64,17 @@
};
2407DEB6089929BA00EB68BF /* ChorusEnsemble.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1976}}";
+ sepNavIntBoundsRect = "{{0, 0}, {656, 2028}}";
sepNavSelRange = "{791, 0}";
- sepNavVisRange = "{0, 2026}";
+ sepNavVisRange = "{687, 156}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* ChorusEnsemble.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1092}}";
- sepNavSelRange = "{2712, 0}";
- sepNavVisRange = "{495, 2391}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 1053}}";
+ sepNavSelRange = "{2726, 0}";
+ sepNavVisRange = "{521, 2322}";
sepNavWindowFrame = "{{298, 47}, {895, 831}}";
};
};
@@ -84,9 +88,9 @@
};
24D8286F09A914000093AEF8 /* ChorusEnsembleProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 5239}}";
- sepNavSelRange = "{11270, 0}";
- sepNavVisRange = "{0, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 5018}}";
+ sepNavSelRange = "{3664, 0}";
+ sepNavVisRange = "{212, 1846}";
sepNavWindowFrame = "{{394, 47}, {895, 831}}";
};
};
@@ -104,6 +108,26 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
+ 8B79361421F57279006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2407DEB6089929BA00EB68BF /* ChorusEnsemble.cpp */;
+ name = "ChorusEnsemble.cpp: 30";
+ rLen = 0;
+ rLoc = 791;
+ rType = 0;
+ vrLen = 142;
+ vrLoc = 687;
+ };
+ 8B79361521F57279006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2407DEB6089929BA00EB68BF /* ChorusEnsemble.cpp */;
+ name = "ChorusEnsemble.cpp: 30";
+ rLen = 0;
+ rLoc = 791;
+ rType = 0;
+ vrLen = 156;
+ vrLoc = 687;
+ };
8D01CCC60486CAD60068D4B7 /* ChorusEnsemble */ = {
activeExec = 0;
};
diff --git a/plugins/MacVST/ChorusEnsemble/ChorusEnsemble.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ChorusEnsemble/ChorusEnsemble.xcodeproj/christopherjohnson.perspectivev3
index e4970a3..0d9a5fb 100755
--- a/plugins/MacVST/ChorusEnsemble/ChorusEnsemble.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ChorusEnsemble/ChorusEnsemble.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>7</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -339,13 +339,23 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>&lt;No Editor&gt;</string>
+ <string>ChorusEnsemble.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>ChorusEnsemble.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>8B79361521F57279006E9731</string>
+ <key>history</key>
+ <array>
+ <string>8B79361421F57279006E9731</string>
+ </array>
</dict>
<key>SplitCount</key>
<string>1</string>
@@ -358,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 0}}</string>
+ <string>{{0, 0}, {603, 132}}</string>
<key>RubberWindowFrame</key>
<string>401 330 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>0pt</string>
+ <string>132pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>441pt</string>
+ <string>309pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -384,8 +394,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
- <key>RubberWindowFrame</key>
- <string>401 330 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -439,7 +447,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 345}}</string>
+ <string>{{10, 27}, {603, 282}}</string>
+ <key>RubberWindowFrame</key>
+ <string>401 330 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -467,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D787D1F7FA7CE007AB60F</string>
+ <string>8B79361621F57279006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D787E1F7FA7CE007AB60F</string>
+ <string>8B79361721F57279006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D787F1F7FA7CE007AB60F</string>
+ <string>8B79361821F57279006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -644,7 +654,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459726.78873903</real>
+ <real>569733753.83205295</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -661,7 +671,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D78801F7FA7CE007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/ChorusEnsemble/ChorusEnsemble.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/ChorusEnsemble/source/ChorusEnsemble.cpp b/plugins/MacVST/ChorusEnsemble/source/ChorusEnsemble.cpp
index b1012f9..318b678 100755
--- a/plugins/MacVST/ChorusEnsemble/source/ChorusEnsemble.cpp
+++ b/plugins/MacVST/ChorusEnsemble/source/ChorusEnsemble.cpp
@@ -27,12 +27,9 @@ ChorusEnsemble::ChorusEnsemble(audioMasterCallback audioMaster) :
airEvenR = 0.0;
airOddR = 0.0;
airFactorR = 0.0;
-
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/ChorusEnsemble/source/ChorusEnsemble.h b/plugins/MacVST/ChorusEnsemble/source/ChorusEnsemble.h
index bd442ab..e7df332 100755
--- a/plugins/MacVST/ChorusEnsemble/source/ChorusEnsemble.h
+++ b/plugins/MacVST/ChorusEnsemble/source/ChorusEnsemble.h
@@ -67,12 +67,9 @@ private:
double airEvenR;
double airOddR;
double airFactorR;
-
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/ChorusEnsemble/source/ChorusEnsembleProc.cpp b/plugins/MacVST/ChorusEnsemble/source/ChorusEnsembleProc.cpp
index 2a783dd..1663244 100755
--- a/plugins/MacVST/ChorusEnsemble/source/ChorusEnsembleProc.cpp
+++ b/plugins/MacVST/ChorusEnsemble/source/ChorusEnsembleProc.cpp
@@ -17,9 +17,6 @@ void ChorusEnsemble::processReplacing(float **inputs, float **outputs, VstInt32
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double speed = pow(A,3) * 0.001;
speed *= overallscale;
@@ -174,27 +171,17 @@ void ChorusEnsemble::processReplacing(float **inputs, float **outputs, VstInt32
inputSampleL = (inputSampleL * wet) + (drySampleL * dry);
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
+ fpFlip = !fpFlip;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -216,9 +203,6 @@ void ChorusEnsemble::processDoubleReplacing(double **inputs, double **outputs, V
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double speed = pow(A,3) * 0.001;
speed *= overallscale;
@@ -373,27 +357,19 @@ void ChorusEnsemble::processDoubleReplacing(double **inputs, double **outputs, V
inputSampleL = (inputSampleL * wet) + (drySampleL * dry);
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
+ fpFlip = !fpFlip;
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/ClipOnly/ClipOnly.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ClipOnly/ClipOnly.xcodeproj/christopherjohnson.pbxuser
index 9aaee37..ecb292e 100755
--- a/plugins/MacVST/ClipOnly/ClipOnly.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ClipOnly/ClipOnly.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459736;
- PBXWorkspaceStateSaveDate = 528459736;
+ PBXPerProjectTemplateStateSaveDate = 569733783;
+ PBXWorkspaceStateSaveDate = 569733783;
};
perUserProjectItems = {
- 8B9D6A261F7EDE28007AB60F /* PBXTextBookmark */ = 8B9D6A261F7EDE28007AB60F /* PBXTextBookmark */;
+ 8B79362B21F572A0006E9731 /* PBXTextBookmark */ = 8B79362B21F572A0006E9731 /* PBXTextBookmark */;
8B9D78921F7FA7F4007AB60F /* PBXTextBookmark */ = 8B9D78921F7FA7F4007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -62,7 +62,7 @@
};
2407DEB6089929BA00EB68BF /* ClipOnly.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {733, 793}}";
+ sepNavIntBoundsRect = "{{0, 0}, {733, 780}}";
sepNavSelRange = "{1684, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{359, 47}, {895, 831}}";
@@ -106,15 +106,15 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6A261F7EDE28007AB60F /* PBXTextBookmark */ = {
+ 8B79362B21F572A0006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* ClipOnly.cpp */;
name = "ClipOnly.cpp: 42";
rLen = 0;
rLoc = 1684;
rType = 0;
- vrLen = 93;
- vrLoc = 1724;
+ vrLen = 0;
+ vrLoc = 0;
};
8B9D78921F7FA7F4007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/ClipOnly/ClipOnly.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ClipOnly/ClipOnly.xcodeproj/christopherjohnson.perspectivev3
index 5203c89..6cad4dd 100755
--- a/plugins/MacVST/ClipOnly/ClipOnly.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ClipOnly/ClipOnly.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D78921F7FA7F4007AB60F</string>
+ <string>8B79362B21F572A0006E9731</string>
<key>history</key>
<array>
- <string>8B9D6A261F7EDE28007AB60F</string>
+ <string>8B9D78921F7FA7F4007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 32}}</string>
+ <string>{{0, 0}, {603, 13}}</string>
<key>RubberWindowFrame</key>
<string>196 332 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>32pt</string>
+ <string>13pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>409pt</string>
+ <string>428pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 382}}</string>
+ <string>{{10, 27}, {603, 401}}</string>
<key>RubberWindowFrame</key>
<string>196 332 810 487 0 0 1440 878 </string>
</dict>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D78931F7FA7F4007AB60F</string>
+ <string>8B79362C21F572A0006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D78941F7FA7F4007AB60F</string>
+ <string>8B79362D21F572A0006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D78951F7FA7F4007AB60F</string>
+ <string>8B79362E21F572A0006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459764.02394903</real>
+ <real>569733792.81656504</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D78961F7FA7F4007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/ClipOnly/ClipOnly.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Console4Buss/Console4Buss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Console4Buss/Console4Buss.xcodeproj/christopherjohnson.pbxuser
index 6a04444..131d5b2 100755
--- a/plugins/MacVST/Console4Buss/Console4Buss.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Console4Buss/Console4Buss.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459773;
- PBXWorkspaceStateSaveDate = 528459773;
+ PBXPerProjectTemplateStateSaveDate = 569733814;
+ PBXWorkspaceStateSaveDate = 569733814;
};
perUserProjectItems = {
- 8B9D6A9F1F7EDF5C007AB60F /* PBXTextBookmark */ = 8B9D6A9F1F7EDF5C007AB60F /* PBXTextBookmark */;
+ 8B79364B21F572C9006E9731 /* PBXTextBookmark */ = 8B79364B21F572C9006E9731 /* PBXTextBookmark */;
8B9D78B21F7FA812007AB60F /* PBXTextBookmark */ = 8B9D78B21F7FA812007AB60F /* PBXTextBookmark */;
8BB1EB551F76F0C500413848 /* PBXTextBookmark */ = 8BB1EB551F76F0C500413848 /* PBXTextBookmark */;
};
@@ -87,9 +87,9 @@
};
24D8286F09A914000093AEF8 /* Console4BussProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {712, 4043}}";
+ sepNavIntBoundsRect = "{{0, 0}, {712, 3562}}";
sepNavSelRange = "{5847, 0}";
- sepNavVisRange = "{5332, 516}";
+ sepNavVisRange = "{5384, 639}";
sepNavWindowFrame = "{{531, 47}, {895, 831}}";
};
};
@@ -107,15 +107,15 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6A9F1F7EDF5C007AB60F /* PBXTextBookmark */ = {
+ 8B79364B21F572C9006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* Console4BussProc.cpp */;
- name = "Console4BussProc.cpp: 169";
+ name = "Console4BussProc.cpp: 171";
rLen = 0;
rLoc = 5847;
rType = 0;
- vrLen = 526;
- vrLoc = 5322;
+ vrLen = 639;
+ vrLoc = 5384;
};
8B9D78B21F7FA812007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/Console4Buss/Console4Buss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Console4Buss/Console4Buss.xcodeproj/christopherjohnson.perspectivev3
index 50d91cf..ab709b7 100755
--- a/plugins/MacVST/Console4Buss/Console4Buss.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Console4Buss/Console4Buss.xcodeproj/christopherjohnson.perspectivev3
@@ -351,11 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D78B21F7FA812007AB60F</string>
+ <string>8B79364B21F572C9006E9731</string>
<key>history</key>
<array>
<string>8BB1EB551F76F0C500413848</string>
- <string>8B9D6A9F1F7EDF5C007AB60F</string>
+ <string>8B9D78B21F7FA812007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 292}}</string>
+ <string>{{0, 0}, {603, 285}}</string>
<key>RubberWindowFrame</key>
<string>585 260 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>292pt</string>
+ <string>285pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>149pt</string>
+ <string>156pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,7 +394,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 122}}</string>
+ <string>{{10, 27}, {603, 129}}</string>
<key>RubberWindowFrame</key>
<string>585 260 810 487 0 0 1440 878 </string>
</dict>
@@ -478,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D78B31F7FA812007AB60F</string>
+ <string>8B79364C21F572C9006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D78B41F7FA812007AB60F</string>
+ <string>8B79364D21F572C9006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D78B51F7FA812007AB60F</string>
+ <string>8B79364E21F572C9006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459794.51351899</real>
+ <real>569733833.14621103</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,7 +652,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D78B61F7FA812007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Console4Buss/Console4Buss.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Console4Buss/source/Console4Buss.cpp b/plugins/MacVST/Console4Buss/source/Console4Buss.cpp
index 79c7f6f..0c8e00c 100755
--- a/plugins/MacVST/Console4Buss/source/Console4Buss.cpp
+++ b/plugins/MacVST/Console4Buss/source/Console4Buss.cpp
@@ -22,11 +22,8 @@ Console4Buss::Console4Buss(audioMasterCallback audioMaster) :
gainchase = -90.0;
settingchase = -90.0;
chasespeed = 350.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
// TODO: uncomment canDo entries according to your plugin's capabilities
// _canDo.insert("sendVstEvents"); // plug-in will send Vst events to Host.
diff --git a/plugins/MacVST/Console4Buss/source/Console4Buss.h b/plugins/MacVST/Console4Buss/source/Console4Buss.h
index b19e6f2..9a9cbfb 100755
--- a/plugins/MacVST/Console4Buss/source/Console4Buss.h
+++ b/plugins/MacVST/Console4Buss/source/Console4Buss.h
@@ -71,11 +71,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- double fpNShapeLA;
- double fpNShapeLB;
- double fpNShapeRA;
- double fpNShapeRB;
- bool fpFlip;
+ double fpNShapeL;
+ double fpNShapeR;
//default stuff
double lastSampleL;
double lastSampleR;
diff --git a/plugins/MacVST/Console4Buss/source/Console4BussProc.cpp b/plugins/MacVST/Console4Buss/source/Console4BussProc.cpp
index 712e496..dde872a 100755
--- a/plugins/MacVST/Console4Buss/source/Console4BussProc.cpp
+++ b/plugins/MacVST/Console4Buss/source/Console4BussProc.cpp
@@ -18,10 +18,6 @@ void Console4Buss::processReplacing(float **inputs, float **outputs, VstInt32 sa
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- double fpOld = 0.618033988749894848204586; //golden ratio!
- double fpNew = 1.0 - fpOld;
-
long double inputSampleL;
long double inputSampleR;
long double half;
@@ -123,25 +119,14 @@ void Console4Buss::processReplacing(float **inputs, float **outputs, VstInt32 sa
//this is the inverse processing for Console: boosts but not so much if there's slew.
//is this too subtle an effect?
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -163,9 +148,6 @@ void Console4Buss::processDoubleReplacing(double **inputs, double **outputs, Vst
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -267,25 +249,16 @@ void Console4Buss::processDoubleReplacing(double **inputs, double **outputs, Vst
//this is the inverse processing for Console: boosts but not so much if there's slew.
//is this too subtle an effect?
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
diff --git a/plugins/MacVST/Console4Channel/Console4Channel.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Console4Channel/Console4Channel.xcodeproj/christopherjohnson.pbxuser
index ae8e6d9..b06954f 100755
--- a/plugins/MacVST/Console4Channel/Console4Channel.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Console4Channel/Console4Channel.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,13 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459803;
- PBXWorkspaceStateSaveDate = 528459803;
+ PBXPerProjectTemplateStateSaveDate = 569733860;
+ PBXWorkspaceStateSaveDate = 569733860;
};
perUserProjectItems = {
8B6F9BAB1D4A8F7100B449D5 /* PBXTextBookmark */ = 8B6F9BAB1D4A8F7100B449D5 /* PBXTextBookmark */;
8B6F9BAC1D4A8F7100B449D5 /* PBXTextBookmark */ = 8B6F9BAC1D4A8F7100B449D5 /* PBXTextBookmark */;
- 8B9D6AB31F7EDF7E007AB60F /* PBXTextBookmark */ = 8B9D6AB31F7EDF7E007AB60F /* PBXTextBookmark */;
+ 8B79366D21F57303006E9731 /* PBXTextBookmark */ = 8B79366D21F57303006E9731 /* PBXTextBookmark */;
8B9D78D21F7FA82E007AB60F /* PBXTextBookmark */ = 8B9D78D21F7FA82E007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -88,9 +88,9 @@
};
24D8286F09A914000093AEF8 /* Console4ChannelProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {677, 3445}}";
+ sepNavIntBoundsRect = "{{0, 0}, {733, 3146}}";
sepNavSelRange = "{3799, 0}";
- sepNavVisRange = "{179, 112}";
+ sepNavVisRange = "{3549, 652}";
sepNavWindowFrame = "{{545, 47}, {895, 831}}";
};
};
@@ -128,15 +128,15 @@
vrLen = 150;
vrLoc = 2674;
};
- 8B9D6AB31F7EDF7E007AB60F /* PBXTextBookmark */ = {
+ 8B79366D21F57303006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* Console4ChannelProc.cpp */;
- name = "Console4ChannelProc.cpp: 107";
+ name = "Console4ChannelProc.cpp: 106";
rLen = 0;
rLoc = 3799;
rType = 0;
- vrLen = 174;
- vrLoc = 117;
+ vrLen = 652;
+ vrLoc = 3549;
};
8B9D78D21F7FA82E007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/Console4Channel/Console4Channel.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Console4Channel/Console4Channel.xcodeproj/christopherjohnson.perspectivev3
index 351193c..8c6b190 100755
--- a/plugins/MacVST/Console4Channel/Console4Channel.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Console4Channel/Console4Channel.xcodeproj/christopherjohnson.perspectivev3
@@ -351,12 +351,12 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D78D21F7FA82E007AB60F</string>
+ <string>8B79366D21F57303006E9731</string>
<key>history</key>
<array>
<string>8B6F9BAB1D4A8F7100B449D5</string>
<string>8B6F9BAC1D4A8F7100B449D5</string>
- <string>8B9D6AB31F7EDF7E007AB60F</string>
+ <string>8B9D78D21F7FA82E007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -370,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 86}}</string>
+ <string>{{0, 0}, {603, 268}}</string>
<key>RubberWindowFrame</key>
<string>592 288 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>86pt</string>
+ <string>268pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>355pt</string>
+ <string>173pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -395,7 +395,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 328}}</string>
+ <string>{{10, 27}, {603, 146}}</string>
<key>RubberWindowFrame</key>
<string>592 288 810 487 0 0 1440 878 </string>
</dict>
@@ -479,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D78D31F7FA82E007AB60F</string>
+ <string>8B79366E21F57303006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D78D41F7FA82E007AB60F</string>
+ <string>8B79366F21F57303006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D78D51F7FA82E007AB60F</string>
+ <string>8B79367021F57303006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -636,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459822.224684</real>
+ <real>569733891.37075198</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -653,7 +653,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D78D61F7FA82E007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Console4Channel/Console4Channel.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Console4Channel/source/Console4Channel.cpp b/plugins/MacVST/Console4Channel/source/Console4Channel.cpp
index 52f6190..2e524a1 100755
--- a/plugins/MacVST/Console4Channel/source/Console4Channel.cpp
+++ b/plugins/MacVST/Console4Channel/source/Console4Channel.cpp
@@ -20,11 +20,8 @@ Console4Channel::Console4Channel(audioMasterCallback audioMaster) :
gainchase = -90.0;
settingchase = -90.0;
chasespeed = 350.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
// TODO: uncomment canDo entries according to your plugin's capabilities
// _canDo.insert("sendVstEvents"); // plug-in will send Vst events to Host.
diff --git a/plugins/MacVST/Console4Channel/source/Console4Channel.h b/plugins/MacVST/Console4Channel/source/Console4Channel.h
index 861ebe3..564853a 100755
--- a/plugins/MacVST/Console4Channel/source/Console4Channel.h
+++ b/plugins/MacVST/Console4Channel/source/Console4Channel.h
@@ -76,11 +76,8 @@ private:
double settingchase;
double chasespeed;
- double fpNShapeLA;
- double fpNShapeLB;
- double fpNShapeRA;
- double fpNShapeRB;
- bool fpFlip;
+ double fpNShapeL;
+ double fpNShapeR;
//default stuff
float gain;
};
diff --git a/plugins/MacVST/Console4Channel/source/Console4ChannelProc.cpp b/plugins/MacVST/Console4Channel/source/Console4ChannelProc.cpp
index 9bf7244..3538710 100755
--- a/plugins/MacVST/Console4Channel/source/Console4ChannelProc.cpp
+++ b/plugins/MacVST/Console4Channel/source/Console4ChannelProc.cpp
@@ -18,10 +18,6 @@ void Console4Channel::processReplacing(float **inputs, float **outputs, VstInt32
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- double fpOld = 0.618033988749894848204586; //golden ratio!
- double fpNew = 1.0 - fpOld;
-
long double inputSampleL;
long double inputSampleR;
long double half;
@@ -105,25 +101,14 @@ void Console4Channel::processReplacing(float **inputs, float **outputs, VstInt32
//this is part of the Purest line: stuff that is on every track
//needs to be DAMN LOW ON MATH srsly guys
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -145,9 +130,6 @@ void Console4Channel::processDoubleReplacing(double **inputs, double **outputs,
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -232,25 +214,16 @@ void Console4Channel::processDoubleReplacing(double **inputs, double **outputs,
//this is part of the Purest line: stuff that is on every track
//needs to be DAMN LOW ON MATH srsly guys
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Console5Buss/Console5Buss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Console5Buss/Console5Buss.xcodeproj/christopherjohnson.pbxuser
index e36a6fc..2cc7c8e 100755
--- a/plugins/MacVST/Console5Buss/Console5Buss.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Console5Buss/Console5Buss.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 537052529;
- PBXWorkspaceStateSaveDate = 537052529;
+ PBXPerProjectTemplateStateSaveDate = 569733916;
+ PBXWorkspaceStateSaveDate = 569733916;
+ };
+ perUserProjectItems = {
+ 8B79369921F5736A006E9731 /* PBXBookmark */ = 8B79369921F5736A006E9731 /* PBXBookmark */;
+ 8B79369A21F5736A006E9731 /* PBXTextBookmark */ = 8B79369A21F5736A006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -82,9 +86,9 @@
};
24D8286F09A914000093AEF8 /* Console5BussProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 4615}}";
+ sepNavIntBoundsRect = "{{0, 0}, {712, 4407}}";
sepNavSelRange = "{4031, 0}";
- sepNavVisRange = "{2914, 2017}";
+ sepNavVisRange = "{5584, 820}";
sepNavWindowFrame = "{{540, 47}, {895, 831}}";
};
};
@@ -102,6 +106,20 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
+ 8B79369921F5736A006E9731 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* Console5BussProc.cpp */;
+ };
+ 8B79369A21F5736A006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* Console5BussProc.cpp */;
+ name = "Console5BussProc.cpp: 112";
+ rLen = 0;
+ rLoc = 4031;
+ rType = 0;
+ vrLen = 820;
+ vrLoc = 5584;
+ };
8D01CCC60486CAD60068D4B7 /* Console5Buss */ = {
activeExec = 0;
};
diff --git a/plugins/MacVST/Console5Buss/Console5Buss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Console5Buss/Console5Buss.xcodeproj/christopherjohnson.perspectivev3
index 2fbab9b..6f86a43 100755
--- a/plugins/MacVST/Console5Buss/Console5Buss.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Console5Buss/Console5Buss.xcodeproj/christopherjohnson.perspectivev3
@@ -339,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Gain.h</string>
+ <string>Console5BussProc.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,7 +347,15 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Gain.h</string>
+ <string>Console5BussProc.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>8B79369A21F5736A006E9731</string>
+ <key>history</key>
+ <array>
+ <string>8B79369921F5736A006E9731</string>
+ </array>
</dict>
<key>SplitCount</key>
<string>1</string>
@@ -360,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 0}}</string>
+ <string>{{0, 0}, {603, 358}}</string>
<key>RubberWindowFrame</key>
<string>570 328 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>0pt</string>
+ <string>358pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>441pt</string>
+ <string>83pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -385,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 56}}</string>
<key>RubberWindowFrame</key>
<string>570 328 810 487 0 0 1440 878 </string>
</dict>
@@ -469,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4D27CB2002C6770051360A</string>
+ <string>8B79369B21F5736A006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4D27CC2002C6770051360A</string>
+ <string>8B79369C21F5736A006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4D27CD2002C6770051360A</string>
+ <string>8B79369D21F5736A006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>537052791.12328696</real>
+ <real>569733994.75000596</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B4D27CE2002C6770051360A</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Console5Buss/Console5Buss.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Console5Buss/source/Console5Buss.cpp b/plugins/MacVST/Console5Buss/source/Console5Buss.cpp
index 7f1c915..7e937a8 100755
--- a/plugins/MacVST/Console5Buss/source/Console5Buss.cpp
+++ b/plugins/MacVST/Console5Buss/source/Console5Buss.cpp
@@ -22,11 +22,8 @@ Console5Buss::Console5Buss(audioMasterCallback audioMaster) :
gainchase = -90.0;
settingchase = -90.0;
chasespeed = 350.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Console5Buss/source/Console5Buss.h b/plugins/MacVST/Console5Buss/source/Console5Buss.h
index 6ece284..0166f33 100755
--- a/plugins/MacVST/Console5Buss/source/Console5Buss.h
+++ b/plugins/MacVST/Console5Buss/source/Console5Buss.h
@@ -61,11 +61,8 @@ private:
double gainchase;
double settingchase;
double chasespeed;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Console5Buss/source/Console5BussProc.cpp b/plugins/MacVST/Console5Buss/source/Console5BussProc.cpp
index 28b4980..21069e8 100755
--- a/plugins/MacVST/Console5Buss/source/Console5BussProc.cpp
+++ b/plugins/MacVST/Console5Buss/source/Console5BussProc.cpp
@@ -17,9 +17,6 @@ void Console5Buss::processReplacing(float **inputs, float **outputs, VstInt32 sa
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = A;
double differenceL;
@@ -151,25 +148,14 @@ void Console5Buss::processReplacing(float **inputs, float **outputs, VstInt32 sa
lastFXBussR *= (1.0 - (nearZeroR * bassTrim));
//this cuts back the DC offset directly, relative to how near zero we are
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -191,9 +177,6 @@ void Console5Buss::processDoubleReplacing(double **inputs, double **outputs, Vst
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = A;
double differenceL;
@@ -325,25 +308,16 @@ void Console5Buss::processDoubleReplacing(double **inputs, double **outputs, Vst
lastFXBussR *= (1.0 - (nearZeroR * bassTrim));
//this cuts back the DC offset directly, relative to how near zero we are
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Console5Channel/Console5Channel.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Console5Channel/Console5Channel.xcodeproj/christopherjohnson.pbxuser
index e08fe8a..de35f26 100755
--- a/plugins/MacVST/Console5Channel/Console5Channel.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Console5Channel/Console5Channel.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 537049611;
- PBXWorkspaceStateSaveDate = 537049611;
+ PBXPerProjectTemplateStateSaveDate = 569734018;
+ PBXWorkspaceStateSaveDate = 569734018;
};
perUserProjectItems = {
- 8B4D27482002BEEF0051360A /* XCBuildMessageTextBookmark */ = 8B4D27482002BEEF0051360A /* XCBuildMessageTextBookmark */;
8B4D27492002BEEF0051360A /* PBXTextBookmark */ = 8B4D27492002BEEF0051360A /* PBXTextBookmark */;
+ 8B7936B021F5738D006E9731 /* PBXTextBookmark */ = 8B7936B021F5738D006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -78,9 +78,9 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19747}}";
+ sepNavIntBoundsRect = "{{0, 0}, {838, 19877}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10459, 399}";
+ sepNavVisRange = "{10459, 280}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
@@ -106,23 +106,24 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B4D27482002BEEF0051360A /* XCBuildMessageTextBookmark */ = {
+ 8B4D27492002BEEF0051360A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "Deprecated conversion from string constant to 'char*'";
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- fallbackIsa = XCBuildMessageTextBookmark;
- rLen = 1;
- rLoc = 306;
- rType = 1;
+ name = "audioeffectx.cpp: 307";
+ rLen = 0;
+ rLoc = 10616;
+ rType = 0;
+ vrLen = 399;
+ vrLoc = 10459;
};
- 8B4D27492002BEEF0051360A /* PBXTextBookmark */ = {
+ 8B7936B021F5738D006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 399;
+ vrLen = 280;
vrLoc = 10459;
};
8D01CCC60486CAD60068D4B7 /* Console5Channel */ = {
diff --git a/plugins/MacVST/Console5Channel/Console5Channel.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Console5Channel/Console5Channel.xcodeproj/christopherjohnson.perspectivev3
index 14c4536..cd63b6d 100755
--- a/plugins/MacVST/Console5Channel/Console5Channel.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Console5Channel/Console5Channel.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>20 312 810 487 0 0 1440 878 </string>
+ <string>373 235 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B4D27492002BEEF0051360A</string>
+ <string>8B7936B021F5738D006E9731</string>
<key>history</key>
<array>
- <string>8B4D27482002BEEF0051360A</string>
+ <string>8B4D27492002BEEF0051360A</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
- <string>20 312 810 487 0 0 1440 878 </string>
+ <string>373 235 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>373 235 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -448,8 +450,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>20 312 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4D274A2002BEEF0051360A</string>
+ <string>8B7936B121F5738D006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4D274B2002BEEF0051360A</string>
+ <string>8B7936B221F5738D006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4D274C2002BEEF0051360A</string>
+ <string>8B7936B321F5738D006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>537050863.33069801</real>
+ <real>569734029.92668998</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,10 +651,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/Console5Channel/Console5Channel.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/Console5Channel/Console5Channel.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>20 312 810 487 0 0 1440 878 </string>
+ <string>373 235 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Console5Channel/source/Console5Channel.cpp b/plugins/MacVST/Console5Channel/source/Console5Channel.cpp
index 9305bf4..1a8f6fb 100755
--- a/plugins/MacVST/Console5Channel/source/Console5Channel.cpp
+++ b/plugins/MacVST/Console5Channel/source/Console5Channel.cpp
@@ -22,11 +22,8 @@ Console5Channel::Console5Channel(audioMasterCallback audioMaster) :
gainchase = -90.0;
settingchase = -90.0;
chasespeed = 350.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Console5Channel/source/Console5Channel.h b/plugins/MacVST/Console5Channel/source/Console5Channel.h
index 59e7950..bbc58b3 100755
--- a/plugins/MacVST/Console5Channel/source/Console5Channel.h
+++ b/plugins/MacVST/Console5Channel/source/Console5Channel.h
@@ -61,11 +61,8 @@ private:
double gainchase;
double settingchase;
double chasespeed;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Console5Channel/source/Console5ChannelProc.cpp b/plugins/MacVST/Console5Channel/source/Console5ChannelProc.cpp
index 428e5e4..a010170 100755
--- a/plugins/MacVST/Console5Channel/source/Console5ChannelProc.cpp
+++ b/plugins/MacVST/Console5Channel/source/Console5ChannelProc.cpp
@@ -17,9 +17,6 @@ void Console5Channel::processReplacing(float **inputs, float **outputs, VstInt32
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = A;
double differenceL;
@@ -152,25 +149,14 @@ void Console5Channel::processReplacing(float **inputs, float **outputs, VstInt32
inputSampleR = sin(inputSampleR);
//amplitude aspect
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -192,9 +178,6 @@ void Console5Channel::processDoubleReplacing(double **inputs, double **outputs,
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = A;
double differenceL;
@@ -327,25 +310,16 @@ void Console5Channel::processDoubleReplacing(double **inputs, double **outputs,
inputSampleR = sin(inputSampleR);
//amplitude aspect
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/christopherjohnson.pbxuser
index 22f68fb..a2f82e3 100755
--- a/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* Console5DarkCh */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 537050480;
- PBXWorkspaceStateSaveDate = 537050480;
+ PBXPerProjectTemplateStateSaveDate = 569734052;
+ PBXWorkspaceStateSaveDate = 569734052;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* Console5DarkCh */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/christopherjohnson.perspectivev3
index 023b57c..ccf0ad5 100755
--- a/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>634 254 810 487 0 0 1440 878 </string>
+ <string>630 254 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -362,7 +362,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>634 254 810 487 0 0 1440 878 </string>
+ <string>630 254 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -387,7 +387,7 @@
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
- <string>634 254 810 487 0 0 1440 878 </string>
+ <string>630 254 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4D275E2002BF6F0051360A</string>
+ <string>8B7936D021F573AD006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4D275F2002BF6F0051360A</string>
+ <string>8B7936D121F573AD006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4D27602002BF6F0051360A</string>
+ <string>8B7936D221F573AD006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>537050991.40073204</real>
+ <real>569734061.13556397</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,10 +643,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/Console5DarkCh/Console5DarkCh.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>634 254 810 487 0 0 1440 878 </string>
+ <string>630 254 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/project.pbxproj b/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/project.pbxproj
index 5cebff5..3fc2cb2 100755
--- a/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/Console5DarkCh/Console5DarkCh.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* Console5DarkCh */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Console5DarkCh" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* Console5DarkCh */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Console5DarkCh/source/Console5DarkCh.cpp b/plugins/MacVST/Console5DarkCh/source/Console5DarkCh.cpp
index 0d613a9..350a6b3 100755
--- a/plugins/MacVST/Console5DarkCh/source/Console5DarkCh.cpp
+++ b/plugins/MacVST/Console5DarkCh/source/Console5DarkCh.cpp
@@ -22,11 +22,8 @@ Console5DarkCh::Console5DarkCh(audioMasterCallback audioMaster) :
gainchase = -90.0;
settingchase = -90.0;
chasespeed = 350.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Console5DarkCh/source/Console5DarkCh.h b/plugins/MacVST/Console5DarkCh/source/Console5DarkCh.h
index 558e4f7..3265f5c 100755
--- a/plugins/MacVST/Console5DarkCh/source/Console5DarkCh.h
+++ b/plugins/MacVST/Console5DarkCh/source/Console5DarkCh.h
@@ -61,11 +61,8 @@ private:
double gainchase;
double settingchase;
double chasespeed;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Console5DarkCh/source/Console5DarkChProc.cpp b/plugins/MacVST/Console5DarkCh/source/Console5DarkChProc.cpp
index e17ff88c..ba3a842 100755
--- a/plugins/MacVST/Console5DarkCh/source/Console5DarkChProc.cpp
+++ b/plugins/MacVST/Console5DarkCh/source/Console5DarkChProc.cpp
@@ -17,9 +17,6 @@ void Console5DarkCh::processReplacing(float **inputs, float **outputs, VstInt32
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = A;
double differenceL;
@@ -152,25 +149,14 @@ void Console5DarkCh::processReplacing(float **inputs, float **outputs, VstInt32
inputSampleR = sin(inputSampleR);
//amplitude aspect
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -192,9 +178,6 @@ void Console5DarkCh::processDoubleReplacing(double **inputs, double **outputs, V
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = A;
double differenceL;
@@ -327,25 +310,16 @@ void Console5DarkCh::processDoubleReplacing(double **inputs, double **outputs, V
inputSampleR = sin(inputSampleR);
//amplitude aspect
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj/christopherjohnson.pbxuser
index a62c485..9a892c1 100755
--- a/plugins/MacVST/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 541893950;
- PBXWorkspaceStateSaveDate = 541893950;
+ PBXPerProjectTemplateStateSaveDate = 569734086;
+ PBXWorkspaceStateSaveDate = 569734086;
+ };
+ perUserProjectItems = {
+ 8B79370021F573DE006E9731 /* PBXTextBookmark */ = 8B79370021F573DE006E9731 /* PBXTextBookmark */;
+ 8B79370121F573DE006E9731 /* PBXTextBookmark */ = 8B79370121F573DE006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -82,9 +86,9 @@
};
24D8286F09A914000093AEF8 /* CrunchyGrooveWearProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 15678}}";
- sepNavSelRange = "{25948, 0}";
- sepNavVisRange = "{40338, 2491}";
+ sepNavIntBoundsRect = "{{0, 0}, {691, 11635}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 259}";
sepNavWindowFrame = "{{262, 47}, {895, 831}}";
};
};
@@ -102,6 +106,26 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
+ 8B79370021F573DE006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* CrunchyGrooveWearProc.cpp */;
+ name = "CrunchyGrooveWearProc.cpp: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 259;
+ vrLoc = 0;
+ };
+ 8B79370121F573DE006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* CrunchyGrooveWearProc.cpp */;
+ name = "CrunchyGrooveWearProc.cpp: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 259;
+ vrLoc = 0;
+ };
8D01CCC60486CAD60068D4B7 /* CrunchyGrooveWear */ = {
activeExec = 0;
};
diff --git a/plugins/MacVST/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj/christopherjohnson.perspectivev3
index c005614..62a585f 100755
--- a/plugins/MacVST/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj/christopherjohnson.perspectivev3
@@ -300,6 +300,8 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
+ <integer>6</integer>
+ <integer>4</integer>
<integer>0</integer>
</array>
</array>
@@ -321,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>6 301 810 487 0 0 1440 878 </string>
+ <string>328 253 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -337,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Gain.h</string>
+ <string>CrunchyGrooveWearProc.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -345,7 +347,15 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Gain.h</string>
+ <string>CrunchyGrooveWearProc.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>8B79370121F573DE006E9731</string>
+ <key>history</key>
+ <array>
+ <string>8B79370021F573DE006E9731</string>
+ </array>
</dict>
<key>SplitCount</key>
<string>1</string>
@@ -358,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 0}}</string>
+ <string>{{0, 0}, {603, 132}}</string>
<key>RubberWindowFrame</key>
- <string>6 301 810 487 0 0 1440 878 </string>
+ <string>328 253 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>0pt</string>
+ <string>132pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>441pt</string>
+ <string>309pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -383,9 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 282}}</string>
<key>RubberWindowFrame</key>
- <string>6 301 810 487 0 0 1440 878 </string>
+ <string>328 253 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -467,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B181BE8204CA7DE00516BEE</string>
+ <string>8B79370221F573DE006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B181BE9204CA7DE00516BEE</string>
+ <string>8B79370321F573DE006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B181BEA204CA7DE00516BEE</string>
+ <string>8B79370421F573DE006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -624,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>541894622.72385299</real>
+ <real>569734110.80127895</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -641,10 +651,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/CrunchyGrooveWear/CrunchyGrooveWear.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>6 301 810 487 0 0 1440 878 </string>
+ <string>328 253 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWear.cpp b/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWear.cpp
index 68a7fd9..6653b91 100755
--- a/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWear.cpp
+++ b/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWear.cpp
@@ -36,11 +36,8 @@ CrunchyGrooveWear::CrunchyGrooveWear(audioMasterCallback audioMaster) :
cMidPrevR = 0.0;
dMidPrevR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWear.h b/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWear.h
index ed304c5..3489e5b 100755
--- a/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWear.h
+++ b/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWear.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double aMidL[21];
diff --git a/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWearProc.cpp b/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWearProc.cpp
index 4eec93e..3c9762e 100755
--- a/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWearProc.cpp
+++ b/plugins/MacVST/CrunchyGrooveWear/source/CrunchyGrooveWearProc.cpp
@@ -14,9 +14,6 @@ void CrunchyGrooveWear::processReplacing(float **inputs, float **outputs, VstInt
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double overallscale = (pow(A,2)*19.0)+1.0;
double gain = overallscale;
@@ -434,25 +431,14 @@ void CrunchyGrooveWear::processReplacing(float **inputs, float **outputs, VstInt
drySampleR = inputSampleR;
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -471,9 +457,6 @@ void CrunchyGrooveWear::processDoubleReplacing(double **inputs, double **outputs
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double overallscale = (pow(A,2)*19.0)+1.0;
double gain = overallscale;
@@ -891,25 +874,16 @@ void CrunchyGrooveWear::processDoubleReplacing(double **inputs, double **outputs
drySampleR = inputSampleR;
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser
index bf745a3..d708fdd 100755
--- a/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* Crystal */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 566521896;
- PBXWorkspaceStateSaveDate = 566521896;
+ PBXPerProjectTemplateStateSaveDate = 569734133;
+ PBXWorkspaceStateSaveDate = 569734133;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* Crystal */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev3
index a08084d..741397c 100755
--- a/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -321,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>17 376 810 487 0 0 1440 878 </string>
+ <string>354 282 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -358,18 +360,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 102}}</string>
+ <string>{{0, 0}, {603, 86}}</string>
<key>RubberWindowFrame</key>
- <string>17 376 810 487 0 0 1440 878 </string>
+ <string>354 282 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>102pt</string>
+ <string>86pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>339pt</string>
+ <string>355pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -383,7 +385,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 312}}</string>
+ <string>{{10, 27}, {603, 328}}</string>
+ <key>RubberWindowFrame</key>
+ <string>354 282 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -438,8 +442,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 312}}</string>
- <key>RubberWindowFrame</key>
- <string>17 376 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -467,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBB351421C4819F00825986</string>
+ <string>8B79371721F57400006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBB351521C4819F00825986</string>
+ <string>8B79371821F57400006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBB351621C4819F00825986</string>
+ <string>8B79371921F57400006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -624,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>566526367.832932</real>
+ <real>569734144.20878696</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -641,11 +643,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BBB351721C4819F00825986</string>
- <string>/Users/christopherjohnson/Desktop/Crystal/Crystal.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/Crystal/Crystal.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>17 376 810 487 0 0 1440 878 </string>
+ <string>354 282 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/project.pbxproj b/plugins/MacVST/Crystal/Crystal.xcodeproj/project.pbxproj
index 871c751..79cf9d3 100755
--- a/plugins/MacVST/Crystal/Crystal.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* Crystal */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Crystal" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* Crystal */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Crystal/source/CrystalProc.cpp b/plugins/MacVST/Crystal/source/CrystalProc.cpp
index 9c62355..7e696a7 100755
--- a/plugins/MacVST/Crystal/source/CrystalProc.cpp
+++ b/plugins/MacVST/Crystal/source/CrystalProc.cpp
@@ -191,18 +191,14 @@ void Crystal::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
//when current and old samples are different from each other, otherwise you can't tell it's there.
//This is not only during silence but the tops of low frequency waves: it scales down to affect lows more gently.
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -212,12 +208,6 @@ void Crystal::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void Crystal::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -404,18 +394,16 @@ void Crystal::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//when current and old samples are different from each other, otherwise you can't tell it's there.
//This is not only during silence but the tops of low frequency waves: it scales down to affect lows more gently.
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -425,10 +413,4 @@ void Crystal::processDoubleReplacing(double **inputs, double **outputs, VstInt32
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/christopherjohnson.pbxuser
index 8adad26..d95b26c 100755
--- a/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* DCVoltage */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459831;
- PBXWorkspaceStateSaveDate = 528459831;
+ PBXPerProjectTemplateStateSaveDate = 569734209;
+ PBXWorkspaceStateSaveDate = 569734209;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* DCVoltage */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/christopherjohnson.perspectivev3
index 2043a0b..a9ec7eb 100755
--- a/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/christopherjohnson.perspectivev3
@@ -360,18 +360,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>116 319 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -385,7 +385,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
<string>116 319 810 487 0 0 1440 878 </string>
</dict>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D78FC1F7FA875007AB60F</string>
+ <string>8B79375621F5744A006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D78FD1F7FA875007AB60F</string>
+ <string>8B79375721F5744A006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D78FE1F7FA875007AB60F</string>
+ <string>8B79375821F5744A006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459893.06026101</real>
+ <real>569734218.48310196</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D78FF1F7FA875007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/DCVoltage/DCVoltage.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/project.pbxproj b/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/project.pbxproj
index b878c4e..ab1df43 100755
--- a/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/DCVoltage/DCVoltage.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* DCVoltage */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "DCVoltage" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* DCVoltage */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/DeEss/DeEss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/DeEss/DeEss.xcodeproj/christopherjohnson.pbxuser
index 71fc919..fd07bbd 100755
--- a/plugins/MacVST/DeEss/DeEss.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/DeEss/DeEss.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 561683712;
- PBXWorkspaceStateSaveDate = 561683712;
+ PBXPerProjectTemplateStateSaveDate = 569734238;
+ PBXWorkspaceStateSaveDate = 569734238;
+ };
+ perUserProjectItems = {
+ 8B79377321F5746E006E9731 /* PBXTextBookmark */ = 8B79377321F5746E006E9731 /* PBXTextBookmark */;
+ 8B79377421F5746E006E9731 /* PBXTextBookmark */ = 8B79377421F5746E006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -82,9 +86,9 @@
};
24D8286F09A914000093AEF8 /* DeEssProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 4589}}";
- sepNavSelRange = "{10846, 0}";
- sepNavVisRange = "{9960, 1917}";
+ sepNavIntBoundsRect = "{{0, 0}, {796, 4355}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{4813, 714}";
sepNavWindowFrame = "{{47, 47}, {895, 831}}";
};
};
@@ -102,6 +106,26 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
+ 8B79377321F5746E006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* DeEssProc.cpp */;
+ name = "DeEssProc.cpp: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 211;
+ vrLoc = 0;
+ };
+ 8B79377421F5746E006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* DeEssProc.cpp */;
+ name = "DeEssProc.cpp: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 714;
+ vrLoc = 4813;
+ };
8D01CCC60486CAD60068D4B7 /* DeEss */ = {
activeExec = 0;
};
diff --git a/plugins/MacVST/DeEss/DeEss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/DeEss/DeEss.xcodeproj/christopherjohnson.perspectivev3
index 51981f2..b85a83a 100755
--- a/plugins/MacVST/DeEss/DeEss.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/DeEss/DeEss.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>5</integer>
+ <integer>6</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>12 385 810 487 0 0 1440 878 </string>
+ <string>304 315 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -339,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Gain.h</string>
+ <string>DeEssProc.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,7 +347,15 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Gain.h</string>
+ <string>DeEssProc.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>8B79377421F5746E006E9731</string>
+ <key>history</key>
+ <array>
+ <string>8B79377321F5746E006E9731</string>
+ </array>
</dict>
<key>SplitCount</key>
<string>1</string>
@@ -360,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 0}}</string>
+ <string>{{0, 0}, {603, 319}}</string>
<key>RubberWindowFrame</key>
- <string>12 385 810 487 0 0 1440 878 </string>
+ <string>304 315 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>0pt</string>
+ <string>319pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>441pt</string>
+ <string>122pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -385,9 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 95}}</string>
<key>RubberWindowFrame</key>
- <string>12 385 810 487 0 0 1440 878 </string>
+ <string>304 315 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -469,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B15DCFB217AA408007AD769</string>
+ <string>8B79377521F5746E006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B15DCFC217AA408007AD769</string>
+ <string>8B79377621F5746E006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B15DCFD217AA408007AD769</string>
+ <string>8B79377721F5746E006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>561685512.74774003</real>
+ <real>569734254.77218902</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,12 +651,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B15DCFE217AA408007AD769</string>
- <string>8B15DCFF217AA408007AD769</string>
- <string>/Users/christopherjohnson/Desktop/DeEss/DeEss.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/DeEss/DeEss.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>12 385 810 487 0 0 1440 878 </string>
+ <string>304 315 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/DeEss/source/DeEssProc.cpp b/plugins/MacVST/DeEss/source/DeEssProc.cpp
index 9a8e14b..9b030a4 100755
--- a/plugins/MacVST/DeEss/source/DeEssProc.cpp
+++ b/plugins/MacVST/DeEss/source/DeEssProc.cpp
@@ -148,18 +148,14 @@ void DeEss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
flip = !flip;
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -169,12 +165,6 @@ void DeEss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void DeEss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -318,18 +308,16 @@ void DeEss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
flip = !flip;
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -339,10 +327,4 @@ void DeEss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/DeRez/DeRez.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/DeRez/DeRez.xcodeproj/christopherjohnson.pbxuser
index 70ab1db..570f388 100755
--- a/plugins/MacVST/DeRez/DeRez.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/DeRez/DeRez.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 553892432;
- PBXWorkspaceStateSaveDate = 553892432;
+ PBXPerProjectTemplateStateSaveDate = 569734376;
+ PBXWorkspaceStateSaveDate = 569734376;
};
perUserProjectItems = {
+ 8B7932CA21F4FB37006E9731 /* PBXTextBookmark */ = 8B7932CA21F4FB37006E9731 /* PBXTextBookmark */;
+ 8B7932CC21F4FB37006E9731 /* PBXTextBookmark */ = 8B7932CC21F4FB37006E9731 /* PBXTextBookmark */;
+ 8B7937B821F574F6006E9731 /* PBXTextBookmark */ = 8B7937B821F574F6006E9731 /* PBXTextBookmark */;
8BB8B70521039BF400751000 /* PBXTextBookmark */ = 8BB8B70521039BF400751000 /* PBXTextBookmark */;
- 8BB8B70721039BF400751000 /* PBXTextBookmark */ = 8BB8B70721039BF400751000 /* PBXTextBookmark */;
- 8BB8B7932103BA6200751000 /* PBXTextBookmark */ = 8BB8B7932103BA6200751000 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -63,25 +64,25 @@
};
2407DEB6089929BA00EB68BF /* DeRez.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1820}}";
- sepNavSelRange = "{3400, 0}";
- sepNavVisRange = "{2754, 2017}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 1833}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 119}";
sepNavWindowFrame = "{{48, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* DeRez.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 988}}";
- sepNavSelRange = "{2648, 0}";
- sepNavVisRange = "{410, 2279}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 949}}";
+ sepNavSelRange = "{2439, 0}";
+ sepNavVisRange = "{361, 2262}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19864}}";
+ sepNavIntBoundsRect = "{{0, 0}, {838, 19851}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10459, 280}";
+ sepNavVisRange = "{10579, 157}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
@@ -107,35 +108,45 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BB8B70521039BF400751000 /* PBXTextBookmark */ = {
+ 8B7932CA21F4FB37006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* DeRezProc.cpp */;
- name = "DeRezProc.cpp: 71";
+ fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
+ name = "audioeffectx.cpp: 307";
rLen = 0;
- rLoc = 2818;
+ rLoc = 10616;
rType = 0;
- vrLen = 286;
- vrLoc = 2669;
+ vrLen = 157;
+ vrLoc = 10579;
};
- 8BB8B70721039BF400751000 /* PBXTextBookmark */ = {
+ 8B7932CC21F4FB37006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- name = "audioeffectx.cpp: 307";
+ fRef = 2407DEB6089929BA00EB68BF /* DeRez.cpp */;
+ name = "DeRez.cpp: 1";
rLen = 0;
- rLoc = 10616;
+ rLoc = 0;
rType = 0;
- vrLen = 280;
- vrLoc = 10459;
+ vrLen = 167;
+ vrLoc = 0;
};
- 8BB8B7932103BA6200751000 /* PBXTextBookmark */ = {
+ 8B7937B821F574F6006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- name = "audioeffectx.cpp: 307";
+ fRef = 2407DEB6089929BA00EB68BF /* DeRez.cpp */;
+ name = "DeRez.cpp: 1";
rLen = 0;
- rLoc = 10616;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 119;
+ vrLoc = 0;
+ };
+ 8BB8B70521039BF400751000 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* DeRezProc.cpp */;
+ name = "DeRezProc.cpp: 71";
+ rLen = 0;
+ rLoc = 2818;
rType = 0;
- vrLen = 280;
- vrLoc = 10459;
+ vrLen = 286;
+ vrLoc = 2669;
};
8D01CCC60486CAD60068D4B7 /* DeRez */ = {
activeExec = 0;
diff --git a/plugins/MacVST/DeRez/DeRez.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/DeRez/DeRez.xcodeproj/christopherjohnson.perspectivev3
index 9e76dbc..50aea9f 100755
--- a/plugins/MacVST/DeRez/DeRez.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/DeRez/DeRez.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>10 338 810 487 0 0 1440 878 </string>
+ <string>396 274 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -339,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>audioeffectx.cpp</string>
+ <string>DeRez.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,15 +347,16 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>audioeffectx.cpp</string>
+ <string>DeRez.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BB8B7932103BA6200751000</string>
+ <string>8B7937B821F574F6006E9731</string>
<key>history</key>
<array>
<string>8BB8B70521039BF400751000</string>
- <string>8BB8B70721039BF400751000</string>
+ <string>8B7932CA21F4FB37006E9731</string>
+ <string>8B7932CC21F4FB37006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 102}}</string>
+ <string>{{0, 0}, {603, 69}}</string>
<key>RubberWindowFrame</key>
- <string>10 338 810 487 0 0 1440 878 </string>
+ <string>396 274 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>102pt</string>
+ <string>69pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>339pt</string>
+ <string>372pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,9 +395,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 312}}</string>
+ <string>{{10, 27}, {603, 345}}</string>
<key>RubberWindowFrame</key>
- <string>10 338 810 487 0 0 1440 878 </string>
+ <string>396 274 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -478,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BB8B7942103BA6200751000</string>
+ <string>8B7937B921F574F6006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BB8B7952103BA6200751000</string>
+ <string>8B7937BA21F574F6006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BB8B7962103BA6200751000</string>
+ <string>8B7937BB21F574F6006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>553892450.74727702</real>
+ <real>569734390.87989402</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,11 +653,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BB8B7972103BA6200751000</string>
<string>/Users/christopherjohnson/Desktop/MacVST/DeRez/DeRez.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>10 338 810 487 0 0 1440 878 </string>
+ <string>396 274 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/DeRez/source/DeRez.cpp b/plugins/MacVST/DeRez/source/DeRez.cpp
index 404127a..cb9b514 100755
--- a/plugins/MacVST/DeRez/source/DeRez.cpp
+++ b/plugins/MacVST/DeRez/source/DeRez.cpp
@@ -23,11 +23,8 @@ DeRez::DeRez(audioMasterCallback audioMaster) :
incrementA = 0.0;
incrementB = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/DeRez/source/DeRez.h b/plugins/MacVST/DeRez/source/DeRez.h
index 89338e8..8ebdcd9 100755
--- a/plugins/MacVST/DeRez/source/DeRez.h
+++ b/plugins/MacVST/DeRez/source/DeRez.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double lastSampleL;
diff --git a/plugins/MacVST/DeRez/source/DeRezProc.cpp b/plugins/MacVST/DeRez/source/DeRezProc.cpp
index 247a364..cbe42d5 100755
--- a/plugins/MacVST/DeRez/source/DeRezProc.cpp
+++ b/plugins/MacVST/DeRez/source/DeRezProc.cpp
@@ -17,8 +17,6 @@ void DeRez::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double targetA = pow(A,3)+0.0005;
if (targetA > 1.0) targetA = 1.0;
@@ -132,26 +130,14 @@ void DeRez::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
lastSampleL = drySampleL;
lastSampleR = drySampleR;
- //noise shaping to 32-bit floating point
- float fpTemp;
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -173,8 +159,6 @@ void DeRez::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double targetA = pow(A,3)+0.0005;
if (targetA > 1.0) targetA = 1.0;
@@ -288,26 +272,16 @@ void DeRez::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
lastSampleL = drySampleL;
lastSampleR = drySampleR;
- //noise shaping to 64-bit floating point
- double fpTemp;
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Density/Density.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Density/Density.xcodeproj/christopherjohnson.pbxuser
index 514aca1..86b1d22 100755
--- a/plugins/MacVST/Density/Density.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Density/Density.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* Density */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459901;
- PBXWorkspaceStateSaveDate = 528459901;
+ PBXPerProjectTemplateStateSaveDate = 569734277;
+ PBXWorkspaceStateSaveDate = 569734277;
+ };
+ perUserProjectItems = {
+ 8B79379F21F574D1006E9731 /* PBXTextBookmark */ = 8B79379F21F574D1006E9731 /* PBXTextBookmark */;
+ 8B7937A021F574D1006E9731 /* PBXTextBookmark */ = 8B7937A021F574D1006E9731 /* PBXTextBookmark */;
+ 8B7937A121F574D1006E9731 /* PBXTextBookmark */ = 8B7937A121F574D1006E9731 /* PBXTextBookmark */;
+ 8B7937A221F574D1006E9731 /* PBXTextBookmark */ = 8B7937A221F574D1006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -58,17 +64,17 @@
};
2407DEB6089929BA00EB68BF /* Density.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 2054}}";
- sepNavSelRange = "{505, 0}";
- sepNavVisRange = "{0, 1934}";
+ sepNavIntBoundsRect = "{{0, 0}, {719, 1989}}";
+ sepNavSelRange = "{631, 0}";
+ sepNavVisRange = "{322, 786}";
sepNavWindowFrame = "{{545, 36}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Density.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1001}}";
- sepNavSelRange = "{2548, 85}";
- sepNavVisRange = "{425, 2333}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 962}}";
+ sepNavSelRange = "{2579, 0}";
+ sepNavVisRange = "{2169, 536}";
sepNavWindowFrame = "{{593, 47}, {895, 831}}";
};
};
@@ -82,9 +88,9 @@
};
24D8286F09A914000093AEF8 /* DensityProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 4602}}";
- sepNavSelRange = "{7190, 0}";
- sepNavVisRange = "{7245, 2459}";
+ sepNavIntBoundsRect = "{{0, 0}, {684, 4225}}";
+ sepNavSelRange = "{8807, 0}";
+ sepNavVisRange = "{8744, 275}";
sepNavWindowFrame = "{{545, 39}, {895, 831}}";
};
};
@@ -102,7 +108,47 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8B79379F21F574D1006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* DensityProc.cpp */;
+ name = "DensityProc.cpp: 240";
+ rLen = 0;
+ rLoc = 8807;
+ rType = 0;
+ vrLen = 275;
+ vrLoc = 8744;
+ };
+ 8B7937A021F574D1006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2407DEB6089929BA00EB68BF /* Density.cpp */;
+ name = "Density.cpp: 23";
+ rLen = 0;
+ rLoc = 631;
+ rType = 0;
+ vrLen = 786;
+ vrLoc = 322;
+ };
+ 8B7937A121F574D1006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 245463B80991757100464AD3 /* Density.h */;
+ name = "Density.h: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 446;
+ vrLoc = 0;
+ };
+ 8B7937A221F574D1006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 245463B80991757100464AD3 /* Density.h */;
+ name = "Density.h: 65";
+ rLen = 0;
+ rLoc = 2579;
+ rType = 0;
+ vrLen = 536;
+ vrLoc = 2169;
+ };
+ 8D01CCC60486CAD60068D4B7 /* Density */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/Density/Density.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Density/Density.xcodeproj/christopherjohnson.perspectivev3
index 3decba3..26b67da 100755
--- a/plugins/MacVST/Density/Density.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Density/Density.xcodeproj/christopherjohnson.perspectivev3
@@ -256,8 +256,6 @@
<key>Layout</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -300,7 +298,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>7</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -323,7 +321,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>612 109 810 487 0 0 1440 878 </string>
+ <string>374 322 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -334,12 +332,14 @@
<key>Dock</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string></string>
+ <string>Density.h</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,7 +347,17 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string></string>
+ <string>Density.h</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>8B7937A221F574D1006E9731</string>
+ <key>history</key>
+ <array>
+ <string>8B79379F21F574D1006E9731</string>
+ <string>8B7937A021F574D1006E9731</string>
+ <string>8B7937A121F574D1006E9731</string>
+ </array>
</dict>
<key>SplitCount</key>
<string>1</string>
@@ -360,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 0}}</string>
+ <string>{{0, 0}, {603, 331}}</string>
<key>RubberWindowFrame</key>
- <string>612 109 810 487 0 0 1440 878 </string>
+ <string>374 322 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>0pt</string>
+ <string>331pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>441pt</string>
+ <string>110pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -386,8 +396,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
- <key>RubberWindowFrame</key>
- <string>612 109 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -441,7 +449,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 363}}</string>
+ <string>{{10, 27}, {603, 83}}</string>
+ <key>RubberWindowFrame</key>
+ <string>374 322 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -469,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D79111F7FA891007AB60F</string>
+ <string>8B7937A321F574D1006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D79121F7FA891007AB60F</string>
+ <string>8B7937A421F574D1006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D79131F7FA891007AB60F</string>
+ <string>8B7937A521F574D1006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528459921.00240701</real>
+ <real>569734353.80657697</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,11 +653,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D79141F7FA891007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Density/Density.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>612 109 810 487 0 0 1440 878 </string>
+ <string>374 322 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Density/Density.xcodeproj/project.pbxproj b/plugins/MacVST/Density/Density.xcodeproj/project.pbxproj
index 649faa8..929f8f7 100755
--- a/plugins/MacVST/Density/Density.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/Density/Density.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* Density */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Density" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
+ 8D01CCC60486CAD60068D4B7 /* Density */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Density/source/Density.cpp b/plugins/MacVST/Density/source/Density.cpp
index 1ecafde..bac4fb2 100755
--- a/plugins/MacVST/Density/source/Density.cpp
+++ b/plugins/MacVST/Density/source/Density.cpp
@@ -20,12 +20,9 @@ Density::Density(audioMasterCallback audioMaster) :
iirSampleBL = 0.0;
iirSampleAR = 0.0;
iirSampleBR = 0.0;
-
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Density/source/Density.h b/plugins/MacVST/Density/source/Density.h
index 377d25d..b634c44 100755
--- a/plugins/MacVST/Density/source/Density.h
+++ b/plugins/MacVST/Density/source/Density.h
@@ -55,17 +55,14 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double iirSampleAL;
double iirSampleBL;
double iirSampleAR;
double iirSampleBR;
-
+ bool fpFlip;
float A;
float B;
float C;
diff --git a/plugins/MacVST/Density/source/DensityProc.cpp b/plugins/MacVST/Density/source/DensityProc.cpp
index 1e968c7..f229a9d 100755
--- a/plugins/MacVST/Density/source/DensityProc.cpp
+++ b/plugins/MacVST/Density/source/DensityProc.cpp
@@ -26,9 +26,6 @@ void Density::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
double out = fabs(density);
density = density * fabs(density);
double count;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -95,6 +92,7 @@ void Density::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
inputSampleR -= iirSampleBR;
}
//highpass section
+ fpFlip = !fpFlip;
count = density;
while (count > 1.0)
@@ -150,25 +148,14 @@ void Density::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -199,9 +186,6 @@ void Density::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double out = fabs(density);
density = density * fabs(density);
double count;
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -268,6 +252,7 @@ void Density::processDoubleReplacing(double **inputs, double **outputs, VstInt32
inputSampleR -= iirSampleBR;
}
//highpass section
+ fpFlip = !fpFlip;
count = density;
while (count > 1.0)
@@ -323,25 +308,16 @@ void Density::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Desk/Desk.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Desk/Desk.xcodeproj/christopherjohnson.pbxuser
index 44f049e..9a65a01 100755
--- a/plugins/MacVST/Desk/Desk.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Desk/Desk.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* Desk */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528459930;
- PBXWorkspaceStateSaveDate = 528459930;
+ PBXPerProjectTemplateStateSaveDate = 569734422;
+ PBXWorkspaceStateSaveDate = 569734422;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* Desk */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/Desk/Desk.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Desk/Desk.xcodeproj/christopherjohnson.perspectivev3
index cc9907f..58a32ea 100755
--- a/plugins/MacVST/Desk/Desk.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Desk/Desk.xcodeproj/christopherjohnson.perspectivev3
@@ -360,18 +360,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>430 335 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -385,7 +385,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
<string>430 335 810 487 0 0 1440 878 </string>
</dict>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D793A1F7FA950007AB60F</string>
+ <string>8B7937D821F57520006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D793B1F7FA950007AB60F</string>
+ <string>8B7937D921F57520006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D793C1F7FA950007AB60F</string>
+ <string>8B7937DA21F57520006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460112.51118302</real>
+ <real>569734432.71270597</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D793D1F7FA950007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Desk/Desk.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Desk/Desk.xcodeproj/project.pbxproj b/plugins/MacVST/Desk/Desk.xcodeproj/project.pbxproj
index a170a5b..43a43a9 100755
--- a/plugins/MacVST/Desk/Desk.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/Desk/Desk.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* Desk */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Desk" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* Desk */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Desk/source/Desk.cpp b/plugins/MacVST/Desk/source/Desk.cpp
index 7a30943..9582f04 100755
--- a/plugins/MacVST/Desk/source/Desk.cpp
+++ b/plugins/MacVST/Desk/source/Desk.cpp
@@ -18,11 +18,8 @@ Desk::Desk(audioMasterCallback audioMaster) :
lastSampleR = 0.0;
lastOutSampleR = 0.0;
lastSlewR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Desk/source/Desk.h b/plugins/MacVST/Desk/source/Desk.h
index 8c5c398..f7f933d 100755
--- a/plugins/MacVST/Desk/source/Desk.h
+++ b/plugins/MacVST/Desk/source/Desk.h
@@ -51,11 +51,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
long double lastSampleL;
diff --git a/plugins/MacVST/Desk/source/DeskProc.cpp b/plugins/MacVST/Desk/source/DeskProc.cpp
index a2bc92c..d53894b 100755
--- a/plugins/MacVST/Desk/source/DeskProc.cpp
+++ b/plugins/MacVST/Desk/source/DeskProc.cpp
@@ -29,9 +29,6 @@ void Desk::processReplacing(float **inputs, float **outputs, VstInt32 sampleFram
double bridgerectifier;
double combsample;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -151,25 +148,14 @@ void Desk::processReplacing(float **inputs, float **outputs, VstInt32 sampleFram
inputSampleR /= gain;
//end R
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -203,9 +189,6 @@ void Desk::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
double bridgerectifier;
double combsample;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -325,25 +308,16 @@ void Desk::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
inputSampleR /= gain;
//end R
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Desk4/Desk4.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Desk4/Desk4.xcodeproj/christopherjohnson.pbxuser
index bd49c38..e471115 100755
--- a/plugins/MacVST/Desk4/Desk4.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Desk4/Desk4.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460121;
- PBXWorkspaceStateSaveDate = 528460121;
+ PBXPerProjectTemplateStateSaveDate = 569734453;
+ PBXWorkspaceStateSaveDate = 569734453;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
diff --git a/plugins/MacVST/Desk4/Desk4.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Desk4/Desk4.xcodeproj/christopherjohnson.perspectivev3
index 86141a5..eb5fa7d 100755
--- a/plugins/MacVST/Desk4/Desk4.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Desk4/Desk4.xcodeproj/christopherjohnson.perspectivev3
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D794F1F7FA972007AB60F</string>
+ <string>8B7937F721F5753E006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D79501F7FA972007AB60F</string>
+ <string>8B7937F821F5753E006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D79511F7FA972007AB60F</string>
+ <string>8B7937F921F5753E006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460146.15257502</real>
+ <real>569734462.79320705</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D79521F7FA972007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Desk4/Desk4.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Desk4/source/Desk4.cpp b/plugins/MacVST/Desk4/source/Desk4.cpp
index a8e20a7..0a05d87 100755
--- a/plugins/MacVST/Desk4/source/Desk4.cpp
+++ b/plugins/MacVST/Desk4/source/Desk4.cpp
@@ -30,11 +30,8 @@ Desk4::Desk4(audioMasterCallback audioMaster) :
lastSlewR = 0.0;
gcount = 0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Desk4/source/Desk4.h b/plugins/MacVST/Desk4/source/Desk4.h
index fa09cd0..802ee47 100755
--- a/plugins/MacVST/Desk4/source/Desk4.h
+++ b/plugins/MacVST/Desk4/source/Desk4.h
@@ -70,11 +70,8 @@ private:
double lastSlewR;
int gcount;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Desk4/source/Desk4Proc.cpp b/plugins/MacVST/Desk4/source/Desk4Proc.cpp
index 515436c..fd165b6 100755
--- a/plugins/MacVST/Desk4/source/Desk4Proc.cpp
+++ b/plugins/MacVST/Desk4/source/Desk4Proc.cpp
@@ -17,9 +17,6 @@ void Desk4::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double gain = (pow(A,2)*10)+0.0001;
double gaintrim = (pow(A,2)*2)+1.0;
@@ -229,25 +226,14 @@ void Desk4::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -269,9 +255,6 @@ void Desk4::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double gain = (pow(A,2)*10)+0.0001;
double gaintrim = (pow(A,2)*2)+1.0;
@@ -481,25 +464,16 @@ void Desk4::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Distance/Distance.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Distance/Distance.xcodeproj/christopherjohnson.pbxuser
index 35d1267..f25d8b8 100755
--- a/plugins/MacVST/Distance/Distance.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Distance/Distance.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460155;
- PBXWorkspaceStateSaveDate = 528460155;
+ PBXPerProjectTemplateStateSaveDate = 569734484;
+ PBXWorkspaceStateSaveDate = 569734484;
};
perUserProjectItems = {
- 8B9D6B631F7EE05F007AB60F /* PBXTextBookmark */ = 8B9D6B631F7EE05F007AB60F /* PBXTextBookmark */;
- 8B9D79701F7FA98F007AB60F /* PBXTextBookmark */ = 8B9D79701F7FA98F007AB60F /* PBXTextBookmark */;
+ 8B79381621F5756D006E9731 /* PBXTextBookmark */ = 8B79381621F5756D006E9731 /* PBXTextBookmark */;
+ 8B79381721F5756D006E9731 /* PBXTextBookmark */ = 8B79381721F5756D006E9731 /* PBXTextBookmark */;
+ 8B79381821F5756D006E9731 /* PBXBookmark */ = 8B79381821F5756D006E9731 /* PBXBookmark */;
+ 8B79381921F5756D006E9731 /* PBXTextBookmark */ = 8B79381921F5756D006E9731 /* PBXTextBookmark */;
8BD79BE91DB421CA006FFA16 /* PBXTextBookmark */ = 8BD79BE91DB421CA006FFA16 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -63,17 +65,17 @@
};
2407DEB6089929BA00EB68BF /* Distance.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1729}}";
+ sepNavIntBoundsRect = "{{0, 0}, {740, 1664}}";
sepNavSelRange = "{460, 0}";
- sepNavVisRange = "{0, 2083}";
+ sepNavVisRange = "{0, 650}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Distance.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 1274}}";
- sepNavSelRange = "{2777, 0}";
- sepNavVisRange = "{2448, 79}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 1027}}";
+ sepNavSelRange = "{2723, 0}";
+ sepNavVisRange = "{509, 1342}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
@@ -87,9 +89,9 @@
};
24D8286F09A914000093AEF8 /* DistanceProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 3939}}";
+ sepNavIntBoundsRect = "{{0, 0}, {691, 3562}}";
sepNavSelRange = "{7303, 0}";
- sepNavVisRange = "{812, 2313}";
+ sepNavVisRange = "{8890, 722}";
sepNavWindowFrame = "{{266, 47}, {895, 831}}";
};
};
@@ -107,25 +109,39 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6B631F7EE05F007AB60F /* PBXTextBookmark */ = {
+ 8B79381621F5756D006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* Distance.h */;
- name = "Distance.h: 78";
+ name = "Distance.h: 79";
rLen = 0;
- rLoc = 2777;
+ rLoc = 2723;
rType = 0;
- vrLen = 96;
- vrLoc = 2431;
+ vrLen = 1342;
+ vrLoc = 509;
};
- 8B9D79701F7FA98F007AB60F /* PBXTextBookmark */ = {
+ 8B79381721F5756D006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* Distance.h */;
- name = "Distance.h: 78";
+ fRef = 2407DEB6089929BA00EB68BF /* Distance.cpp */;
+ name = "Distance.cpp: 16";
+ rLen = 0;
+ rLoc = 460;
+ rType = 0;
+ vrLen = 650;
+ vrLoc = 0;
+ };
+ 8B79381821F5756D006E9731 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* DistanceProc.cpp */;
+ };
+ 8B79381921F5756D006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* DistanceProc.cpp */;
+ name = "DistanceProc.cpp: 203";
rLen = 0;
- rLoc = 2777;
+ rLoc = 7303;
rType = 0;
- vrLen = 79;
- vrLoc = 2448;
+ vrLen = 722;
+ vrLoc = 8890;
};
8BD79BE91DB421CA006FFA16 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/Distance/Distance.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Distance/Distance.xcodeproj/christopherjohnson.perspectivev3
index 6450494..5df581a 100755
--- a/plugins/MacVST/Distance/Distance.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Distance/Distance.xcodeproj/christopherjohnson.perspectivev3
@@ -339,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Distance.h</string>
+ <string>DistanceProc.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,15 +347,17 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Distance.h</string>
+ <string>DistanceProc.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D79701F7FA98F007AB60F</string>
+ <string>8B79381921F5756D006E9731</string>
<key>history</key>
<array>
<string>8BD79BE91DB421CA006FFA16</string>
- <string>8B9D6B631F7EE05F007AB60F</string>
+ <string>8B79381621F5756D006E9731</string>
+ <string>8B79381721F5756D006E9731</string>
+ <string>8B79381821F5756D006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +371,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 86}}</string>
+ <string>{{0, 0}, {603, 281}}</string>
<key>RubberWindowFrame</key>
<string>518 304 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>86pt</string>
+ <string>281pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>355pt</string>
+ <string>160pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,7 +396,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 328}}</string>
+ <string>{{10, 27}, {603, 133}}</string>
<key>RubberWindowFrame</key>
<string>518 304 810 487 0 0 1440 878 </string>
</dict>
@@ -478,11 +480,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D79711F7FA98F007AB60F</string>
+ <string>8B79381A21F5756D006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D79721F7FA98F007AB60F</string>
+ <string>8B79381B21F5756D006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D79731F7FA98F007AB60F</string>
+ <string>8B79381C21F5756D006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +637,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460175.35196102</real>
+ <real>569734509.28240097</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,7 +654,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D79741F7FA98F007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Distance/Distance.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Distance/source/Distance.cpp b/plugins/MacVST/Distance/source/Distance.cpp
index bae55c1..7ccd8fb 100755
--- a/plugins/MacVST/Distance/source/Distance.cpp
+++ b/plugins/MacVST/Distance/source/Distance.cpp
@@ -16,11 +16,8 @@ Distance::Distance(audioMasterCallback audioMaster) :
B = 1.0;
thirdresultL = prevresultL = lastclampL = clampL = changeL = lastL = 0.0;
thirdresultR = prevresultR = lastclampR = clampR = changeR = lastR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Distance/source/Distance.h b/plugins/MacVST/Distance/source/Distance.h
index 52ecc14..5566f84 100755
--- a/plugins/MacVST/Distance/source/Distance.h
+++ b/plugins/MacVST/Distance/source/Distance.h
@@ -67,11 +67,8 @@ private:
double prevresultR;
double lastR;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Distance/source/DistanceProc.cpp b/plugins/MacVST/Distance/source/DistanceProc.cpp
index bdf3c13..32eb3fa 100755
--- a/plugins/MacVST/Distance/source/DistanceProc.cpp
+++ b/plugins/MacVST/Distance/source/DistanceProc.cpp
@@ -28,9 +28,6 @@ void Distance::processReplacing(float **inputs, float **outputs, VstInt32 sample
double dry = 1.0-wet;
double bridgerectifier;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
long double drySampleL;
@@ -126,25 +123,14 @@ void Distance::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleR = (drySampleR * dry)+(inputSampleR*wet);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -177,9 +163,6 @@ void Distance::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double dry = 1.0-wet;
double bridgerectifier;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
long double drySampleL;
@@ -275,25 +258,16 @@ void Distance::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleR = (drySampleR * dry)+(inputSampleR*wet);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Distance2/Distance2.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Distance2/Distance2.xcodeproj/christopherjohnson.pbxuser
index 2fb0369..8e41741 100755
--- a/plugins/MacVST/Distance2/Distance2.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Distance2/Distance2.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 547768347;
- PBXWorkspaceStateSaveDate = 547768347;
+ PBXPerProjectTemplateStateSaveDate = 569734535;
+ PBXWorkspaceStateSaveDate = 569734535;
};
perUserProjectItems = {
- 8B7E3D4B20A6500200482CB5 /* PBXBookmark */ = 8B7E3D4B20A6500200482CB5 /* PBXBookmark */;
- 8B7E3D5420A6501D00482CB5 /* XCBuildMessageTextBookmark */ = 8B7E3D5420A6501D00482CB5 /* XCBuildMessageTextBookmark */;
+ 8B79383921F57592006E9731 /* PBXTextBookmark */ = 8B79383921F57592006E9731 /* PBXTextBookmark */;
+ 8B79383D21F57592006E9731 /* PBXTextBookmark */ = 8B79383D21F57592006E9731 /* PBXTextBookmark */;
8B7E3D5520A6501D00482CB5 /* PBXTextBookmark */ = 8B7E3D5520A6501D00482CB5 /* PBXTextBookmark */;
8B7E3D5B20A6501D00482CB5 /* PBXTextBookmark */ = 8B7E3D5B20A6501D00482CB5 /* PBXTextBookmark */;
};
@@ -80,15 +80,15 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19747}}";
+ sepNavIntBoundsRect = "{{0, 0}, {838, 19877}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10459, 399}";
+ sepNavVisRange = "{10459, 280}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* Distance2Proc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 7605}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 7371}}";
sepNavSelRange = "{21129, 0}";
sepNavVisRange = "{8249, 1763}";
sepNavWindowFrame = "{{0, 47}, {895, 831}}";
@@ -108,18 +108,25 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B7E3D4B20A6500200482CB5 /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 24D8286F09A914000093AEF8 /* Distance2Proc.cpp */;
- };
- 8B7E3D5420A6501D00482CB5 /* XCBuildMessageTextBookmark */ = {
+ 8B79383921F57592006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "Deprecated conversion from string constant to 'char*'";
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- fallbackIsa = XCBuildMessageTextBookmark;
- rLen = 1;
- rLoc = 306;
- rType = 1;
+ name = "audioeffectx.cpp: 307";
+ rLen = 0;
+ rLoc = 10616;
+ rType = 0;
+ vrLen = 280;
+ vrLoc = 10459;
+ };
+ 8B79383D21F57592006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* Distance2Proc.cpp */;
+ name = "Distance2Proc.cpp: 553";
+ rLen = 0;
+ rLoc = 21129;
+ rType = 0;
+ vrLen = 1763;
+ vrLoc = 8249;
};
8B7E3D5520A6501D00482CB5 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/Distance2/Distance2.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Distance2/Distance2.xcodeproj/christopherjohnson.perspectivev3
index 0268d65..7b0ef13 100755
--- a/plugins/MacVST/Distance2/Distance2.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Distance2/Distance2.xcodeproj/christopherjohnson.perspectivev3
@@ -241,10 +241,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B7E3D5B20A6501D00482CB5</string>
+ <string>8B79383D21F57592006E9731</string>
<key>history</key>
<array>
- <string>8B7E3D4B20A6500200482CB5</string>
+ <string>8B7E3D5B20A6501D00482CB5</string>
</array>
</dict>
<key>SplitCount</key>
@@ -297,6 +297,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -390,10 +392,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B7E3D5520A6501D00482CB5</string>
+ <string>8B79383921F57592006E9731</string>
<key>history</key>
<array>
- <string>8B7E3D5420A6501D00482CB5</string>
+ <string>8B7E3D5520A6501D00482CB5</string>
</array>
</dict>
<key>SplitCount</key>
@@ -407,18 +409,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>20 288 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -432,7 +434,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>20 288 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -487,8 +491,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>20 288 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -516,11 +518,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B7E3D5620A6501D00482CB5</string>
+ <string>8B79383A21F57592006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B7E3D5720A6501D00482CB5</string>
+ <string>8B79383B21F57592006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B7E3D5820A6501D00482CB5</string>
+ <string>8B79383C21F57592006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -673,7 +675,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>547770397.97323096</real>
+ <real>569734546.43575704</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -691,7 +693,7 @@
<key>WindowOrderList</key>
<array>
<string>8B7E3D5920A6501D00482CB5</string>
- <string>/Users/christopherjohnson/Desktop/Distance2/Distance2.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/Distance2/Distance2.xcodeproj</string>
</array>
<key>WindowString</key>
<string>20 288 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/Distance2/source/Distance2Proc.cpp b/plugins/MacVST/Distance2/source/Distance2Proc.cpp
index ef5bf5b..473f3c8 100755
--- a/plugins/MacVST/Distance2/source/Distance2Proc.cpp
+++ b/plugins/MacVST/Distance2/source/Distance2Proc.cpp
@@ -266,18 +266,14 @@ void Distance2::processReplacing(float **inputs, float **outputs, VstInt32 sampl
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -287,12 +283,6 @@ void Distance2::processReplacing(float **inputs, float **outputs, VstInt32 sampl
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void Distance2::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -554,18 +544,16 @@ void Distance2::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -575,10 +563,4 @@ void Distance2::processDoubleReplacing(double **inputs, double **outputs, VstInt
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/christopherjohnson.pbxuser
new file mode 100755
index 0000000..1fc2619
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/christopherjohnson.pbxuser
@@ -0,0 +1,131 @@
+// !$*UTF8*$!
+{
+ 089C1669FE841209C02AAC07 /* Project object */ = {
+ activeBuildConfigurationName = Release;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* DitherFloat */;
+ codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
+ perUserDictionary = {
+ PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 364,
+ 20,
+ 48,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
+ PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 324,
+ 60,
+ 20,
+ 48,
+ 43,
+ 43,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXTargetDataSource_PrimaryAttribute,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ );
+ };
+ PBXPerProjectTemplateStateSaveDate = 569801710;
+ PBXWorkspaceStateSaveDate = 569801710;
+ };
+ perUserProjectItems = {
+ 8BEF85B121F6801400FEF113 /* XCBuildMessageTextBookmark */ = 8BEF85B121F6801400FEF113 /* XCBuildMessageTextBookmark */;
+ 8BEF85B621F6802400FEF113 /* PBXTextBookmark */ = 8BEF85B621F6802400FEF113 /* PBXTextBookmark */;
+ };
+ sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
+ userBuildSettings = {
+ };
+ };
+ 2407DEB6089929BA00EB68BF /* DitherFloat.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1664}}";
+ sepNavSelRange = "{3601, 0}";
+ sepNavVisRange = "{2649, 2103}";
+ sepNavWindowFrame = "{{166, 47}, {895, 831}}";
+ };
+ };
+ 245463B80991757100464AD3 /* DitherFloat.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {866, 845}}";
+ sepNavSelRange = "{2508, 0}";
+ sepNavVisRange = "{292, 2228}";
+ sepNavWindowFrame = "{{20, 47}, {895, 831}}";
+ };
+ };
+ 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}";
+ sepNavSelRange = "{10616, 0}";
+ sepNavVisRange = "{9653, 2414}";
+ sepNavWindowFrame = "{{15, 42}, {895, 831}}";
+ };
+ };
+ 24D8286F09A914000093AEF8 /* DitherFloatProc.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {649, 2652}}";
+ sepNavSelRange = "{569, 0}";
+ sepNavVisRange = "{451, 169}";
+ sepNavWindowFrame = "{{68, 47}, {895, 831}}";
+ };
+ };
+ 8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
+ isa = PBXSourceControlManager;
+ fallbackIsa = XCSourceControlManager;
+ isSCMEnabled = 0;
+ scmConfiguration = {
+ repositoryNamesForRoots = {
+ "" = "";
+ };
+ };
+ };
+ 8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
+ isa = PBXCodeSenseManager;
+ indexTemplatePath = "";
+ };
+ 8BEF85B121F6801400FEF113 /* XCBuildMessageTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "Unused variable 'blend'";
+ fRef = 24D8286F09A914000093AEF8 /* DitherFloatProc.cpp */;
+ fallbackIsa = XCBuildMessageTextBookmark;
+ rLen = 1;
+ rLoc = 21;
+ rType = 1;
+ };
+ 8BEF85B621F6802400FEF113 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* DitherFloatProc.cpp */;
+ name = "DitherFloatProc.cpp: 22";
+ rLen = 0;
+ rLoc = 569;
+ rType = 0;
+ vrLen = 169;
+ vrLoc = 451;
+ };
+ 8D01CCC60486CAD60068D4B7 /* DitherFloat */ = {
+ activeExec = 0;
+ };
+}
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/christopherjohnson.perspectivev3
new file mode 100755
index 0000000..3612d29
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/christopherjohnson.perspectivev3
@@ -0,0 +1,1508 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Name</key>
+ <string>Project Format Conflicts List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>BundlePath</key>
+ <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+ <key>Description</key>
+ <string>AIODescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>perspectivev3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8B02375D1D42B1C400E1E8C8</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.defaultV3</string>
+ <key>MajorVersion</key>
+ <integer>34</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>All-In-One</string>
+ <key>Notifications</key>
+ <array>
+ <dict>
+ <key>XCObserverAutoDisconnectKey</key>
+ <true/>
+ <key>XCObserverDefintionKey</key>
+ <dict>
+ <key>PBXStatusErrorsKey</key>
+ <integer>0</integer>
+ </dict>
+ <key>XCObserverFactoryKey</key>
+ <string>XCPerspectivesSpecificationIdentifier</string>
+ <key>XCObserverGUIDKey</key>
+ <string>XCObserverProjectIdentifier</string>
+ <key>XCObserverNotificationKey</key>
+ <string>PBXStatusBuildStateMessageNotification</string>
+ <key>XCObserverTargetKey</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>XCObserverTriggerKey</key>
+ <string>awakenModuleWithObserver:</string>
+ <key>XCObserverValidationKey</key>
+ <dict>
+ <key>PBXStatusErrorsKey</key>
+ <integer>2</integer>
+ </dict>
+ </dict>
+ </array>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>810</integer>
+ <integer>810</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>XCToolbarPerspectiveControl</string>
+ <string>NSToolbarSeparatorItem</string>
+ <string>active-combo-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23ED40692098700951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>185</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>089C166AFE841209C02AAC07</string>
+ <string>08FB77ADFE841716C02AAC07</string>
+ <string>1C37FBAC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>6</integer>
+ <integer>4</integer>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {185, 428}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <false/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {202, 446}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>185</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>291 285 810 487 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>202pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8B0237581D42B1C400E1E8C8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>DitherFloatProc.cpp</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8B0237591D42B1C400E1E8C8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>DitherFloatProc.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>8BEF85B621F6802400FEF113</string>
+ <key>history</key>
+ <array>
+ <string>8BEF85B121F6801400FEF113</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.CommonNavigatorGroupSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {603, 132}}</string>
+ <key>RubberWindowFrame</key>
+ <string>291 285 810 487 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>132pt</string>
+ </dict>
+ <dict>
+ <key>Proportion</key>
+ <string>309pt</string>
+ <key>Tabs</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EDF0692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 27}, {603, 414}}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EE00692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 31}, {603, 297}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXCVSModuleFilterTypeKey</key>
+ <integer>1032</integer>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EE10692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM Results</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 31}, {603, 297}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build Results</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1023</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1012</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 27}, {603, 282}}</string>
+ <key>RubberWindowFrame</key>
+ <string>291 285 810 487 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>603pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDockableTabModule</string>
+ <string>XCDetailModule</string>
+ <string>PBXProjectFindModule</string>
+ <string>PBXCVSModule</string>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>8BEF853D21F67C3100FEF113</string>
+ <string>1CA23ED40692098700951B8B</string>
+ <string>8BEF853E21F67C3100FEF113</string>
+ <string>8B0237581D42B1C400E1E8C8</string>
+ <string>8BEF853F21F67C3100FEF113</string>
+ <string>1CA23EDF0692099D00951B8B</string>
+ <string>1CA23EE00692099D00951B8B</string>
+ <string>1CA23EE10692099D00951B8B</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>XCToolbarPerspectiveControl</string>
+ <string>NSToolbarSeparatorItem</string>
+ <string>active-combo-popup</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>debugger-restart-executable</string>
+ <string>debugger-pause</string>
+ <string>debugger-step-over</string>
+ <string>debugger-step-into</string>
+ <string>debugger-step-out</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>servicesModulebreakpoints</string>
+ <string>debugger-show-console-window</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string>PBXDebugSessionModule</string>
+ <key>IconName</key>
+ <string>DebugTabIcon</string>
+ <key>Identifier</key>
+ <string>perspective.debug</string>
+ <key>IsVertical</key>
+ <integer>1</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CCC7628064C1048000F2A68</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {810, 0}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>0%</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {395, 213}}</string>
+ <string>{{395, 0}, {415, 213}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {810, 213}}</string>
+ <string>{{0, 213}, {810, 225}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CCC7629064C1048000F2A68</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {810, 438}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>443pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>XCModuleDock</string>
+ <string>PBXDebugCLIModule</string>
+ <string>PBXDebugSessionModule</string>
+ <string>XCConsole</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CC8E6A5069209BD00BB180A</string>
+ <string>1CC8E6A6069209BD00BB180A</string>
+ <string>1CCC7628064C1048000F2A68</string>
+ <string>1CCC7629064C1048000F2A68</string>
+ <string>1CC8E6A7069209BD00BB180A</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <true/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>569802788.52883804</real>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>2</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string></string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>/Users/christopherjohnson/Desktop/DitherFloat/DitherFloat.xcodeproj</string>
+ </array>
+ <key>WindowString</key>
+ <string>291 285 810 487 0 0 1440 878 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {317, 164}}</string>
+ <string>{{317, 0}, {377, 164}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 164}}</string>
+ <string>{{0, 164}, {694, 216}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 380}}</string>
+ <key>RubberWindowFrame</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C0AD2AB069F1E9B00FABCE6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>1C0AD2AC069F1E9B00FABCE6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052900623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {500, 215}}</string>
+ <key>RubberWindowFrame</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>218pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build Results</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 222}, {500, 236}}</string>
+ <key>RubberWindowFrame</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>236pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>458pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAA5065D492600B07095</string>
+ <string>1C78EAA6065D492600B07095</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowString</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528D0623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 167}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{8, 0}, {773, 254}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>428pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>1C530D58069F1CE1000CFCEE</string>
+ <string>1C530D59069F1CE1000CFCEE</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1C530D5A069F1CE1000CFCEE</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {700, 358}}</string>
+ <key>RubberWindowFrame</key>
+ <string>149 87 700 400 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D5B069F1CE1000CFCEE</string>
+ <string>1C530D5C069F1CE1000CFCEE</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>149 87 440 400 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D5B069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.09500122070312</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scmV3</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>166pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>166pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.projectFormatConflicts</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8BCAE52E1D49920D0047D4BD</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {472, 302}}</string>
+ <key>RubberWindowFrame</key>
+ <string>569 378 472 322 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Proportion</key>
+ <string>302pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>302pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Format Conflicts</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCProjectFormatConflictsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <false/>
+ <key>TableOfContents</key>
+ <array>
+ <string>8BCAE52F1D49920D0047D4BD</string>
+ <string>8BCAE5301D49920D0047D4BD</string>
+ <string>8BCAE52E1D49920D0047D4BD</string>
+ </array>
+ <key>WindowContentMinSize</key>
+ <string>450 300</string>
+ <key>WindowString</key>
+ <string>569 378 472 322 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>8BCAE52F1D49920D0047D4BD</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {369, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {616, 353}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {369, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>94</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>597 125 616 374 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>354pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>354pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EABA065D492600B07095</string>
+ <string>1C78EABB065D492600B07095</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>597 125 616 374 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.pbxproj b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.pbxproj
new file mode 100755
index 0000000..eac959a
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.pbxproj
@@ -0,0 +1,2201 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 2407DEB9089929BA00EB68BF /* DitherFloat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* DitherFloat.cpp */; };
+ 245463B90991757100464AD3 /* DitherFloat.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* DitherFloat.h */; };
+ 24A202190F90D1DE003BB5A7 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF910F90D1DD003BB5A7 /* aeffect.h */; };
+ 24A2021A0F90D1DE003BB5A7 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */; };
+ 24A2021B0F90D1DE003BB5A7 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */; };
+ 24A2021D0F90D1DE003BB5A7 /* adelay.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF990F90D1DD003BB5A7 /* adelay.h */; };
+ 24A202240F90D1DE003BB5A7 /* sdeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */; };
+ 24A202260F90D1DE003BB5A7 /* surrounddelay.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */; };
+ 24A2022A0F90D1DE003BB5A7 /* again.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFAB0F90D1DD003BB5A7 /* again.h */; };
+ 24A202330F90D1DE003BB5A7 /* gmnames.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */; };
+ 24A202350F90D1DE003BB5A7 /* vstxsynth.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */; };
+ 24A202460F90D1DE003BB5A7 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */; };
+ 24A202480F90D1DE003BB5A7 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */; };
+ 24A2024A0F90D1DE003BB5A7 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */; };
+ 24A2024D0F90D1DE003BB5A7 /* cw_vst_prefix.pch++ in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */; };
+ 24A202510F90D1DE003BB5A7 /* xcode_au_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */; };
+ 24A202520F90D1DE003BB5A7 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */; };
+ 24A202680F90D1DE003BB5A7 /* controlsgui.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200050F90D1DD003BB5A7 /* controlsgui.h */; };
+ 24A2026A0F90D1DE003BB5A7 /* pdrawtesteditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */; };
+ 24A2026C0F90D1DE003BB5A7 /* pdrawtesteffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */; };
+ 24A2026F0F90D1DE003BB5A7 /* pdrawtestview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */; };
+ 24A202710F90D1DE003BB5A7 /* pprimitivesviews.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */; };
+ 24A202780F90D1DE003BB5A7 /* aeffguieditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */; };
+ 24A2027A0F90D1DE003BB5A7 /* cfileselector.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */; };
+ 24A2027D0F90D1DE003BB5A7 /* cscrollview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */; };
+ 24A2027F0F90D1DE003BB5A7 /* ctabview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001F0F90D1DD003BB5A7 /* ctabview.h */; };
+ 24A203A50F90D1DE003BB5A7 /* plugguieditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201470F90D1DE003BB5A7 /* plugguieditor.h */; };
+ 24A203A70F90D1DE003BB5A7 /* vstcontrols.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201490F90D1DE003BB5A7 /* vstcontrols.h */; };
+ 24A203A90F90D1DE003BB5A7 /* vstgui.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014B0F90D1DE003BB5A7 /* vstgui.h */; };
+ 24A203AA0F90D1DE003BB5A7 /* vstkeycode.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */; };
+ 24A203AB0F90D1DE003BB5A7 /* vstplugscarbon.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */; };
+ 24A203AC0F90D1DE003BB5A7 /* vstplugsmac.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */; };
+ 24A203AD0F90D1DE003BB5A7 /* vstplugsmacho.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */; };
+ 24A203AE0F90D1DE003BB5A7 /* vstplugsquartz.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */; };
+ 24A203CB0F90D251003BB5A7 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */; };
+ 24A203CC0F90D251003BB5A7 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */; };
+ 24A203CD0F90D251003BB5A7 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */; };
+ 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
+ 24D8287009A914000093AEF8 /* DitherFloatProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* DitherFloatProc.cpp */; };
+ 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 24A203D60F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 8D01CCD20486CAD60068D4B7;
+ remoteInfo = again;
+ };
+ 24A203D80F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = F4476974093DAE42008998C4;
+ remoteInfo = adelay;
+ };
+ 24A203DA0F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = F4FF52220929FBF500DDED7A;
+ remoteInfo = vstxsynth;
+ };
+ 24A203DC0F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = F4476A10093DCAF9008998C4;
+ remoteInfo = surrounddelay;
+ };
+ 24A203DE0F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = F4FF52F3092A312800DDED7A;
+ remoteInfo = minihost;
+ };
+ 24A203E40F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */;
+ proxyType = 2;
+ remoteGlobalIDString = 8D01CCD20486CAD60068D4B7;
+ remoteInfo = AudioUnit;
+ };
+ 24A203E60F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */;
+ proxyType = 2;
+ remoteGlobalIDString = F4C9F1D407B2320800010DAD;
+ remoteInfo = VST;
+ };
+ 24A203EC0F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 8D01CCD20486CAD60068D4B7;
+ remoteInfo = AudioUnit;
+ };
+ 24A203EE0F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = F4C9F1D407B2320800010DAD;
+ remoteInfo = VST;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+ 2407DE920899296600EB68BF /* DitherFloat.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DitherFloat.vst; sourceTree = BUILT_PRODUCTS_DIR; };
+ 2407DEB6089929BA00EB68BF /* DitherFloat.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DitherFloat.cpp; path = source/DitherFloat.cpp; sourceTree = "<group>"; };
+ 2434720A098313350063BBF1 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
+ 245463B80991757100464AD3 /* DitherFloat.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DitherFloat.h; path = source/DitherFloat.h; sourceTree = "<group>"; };
+ 24A200000F90D1DD003BB5A7 /* bmp10014.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10014.bmp; sourceTree = "<group>"; };
+ 24A200010F90D1DD003BB5A7 /* bmp10015.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10015.bmp; sourceTree = "<group>"; };
+ 24A200020F90D1DD003BB5A7 /* bmp10016.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10016.bmp; sourceTree = "<group>"; };
+ 24A200040F90D1DD003BB5A7 /* controlsgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = controlsgui.cpp; sourceTree = "<group>"; };
+ 24A200050F90D1DD003BB5A7 /* controlsgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = controlsgui.h; sourceTree = "<group>"; };
+ 24A200060F90D1DD003BB5A7 /* pdrawtesteditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtesteditor.cpp; sourceTree = "<group>"; };
+ 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtesteditor.h; sourceTree = "<group>"; };
+ 24A200080F90D1DD003BB5A7 /* pdrawtesteffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtesteffect.cpp; sourceTree = "<group>"; };
+ 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtesteffect.h; sourceTree = "<group>"; };
+ 24A2000A0F90D1DD003BB5A7 /* pdrawtestmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtestmain.cpp; sourceTree = "<group>"; };
+ 24A2000B0F90D1DD003BB5A7 /* pdrawtestview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtestview.cpp; sourceTree = "<group>"; };
+ 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtestview.h; sourceTree = "<group>"; };
+ 24A2000D0F90D1DD003BB5A7 /* pprimitivesviews.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pprimitivesviews.cpp; sourceTree = "<group>"; };
+ 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pprimitivesviews.h; sourceTree = "<group>"; };
+ 24A200100F90D1DD003BB5A7 /* drawtest.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.def; sourceTree = "<group>"; };
+ 24A200110F90D1DD003BB5A7 /* drawtest.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.rc; sourceTree = "<group>"; };
+ 24A200120F90D1DD003BB5A7 /* drawtest.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = drawtest.vcproj; sourceTree = "<group>"; };
+ 24A200140F90D1DD003BB5A7 /* drawtest.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.dsp; sourceTree = "<group>"; };
+ 24A200150F90D1DD003BB5A7 /* drawtest.dsw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.dsw; sourceTree = "<group>"; };
+ 24A200170F90D1DD003BB5A7 /* aeffguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aeffguieditor.cpp; sourceTree = "<group>"; };
+ 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffguieditor.h; sourceTree = "<group>"; };
+ 24A200190F90D1DD003BB5A7 /* cfileselector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfileselector.cpp; sourceTree = "<group>"; };
+ 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfileselector.h; sourceTree = "<group>"; };
+ 24A2001B0F90D1DD003BB5A7 /* Changelog */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Changelog; sourceTree = "<group>"; };
+ 24A2001C0F90D1DD003BB5A7 /* cscrollview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cscrollview.cpp; sourceTree = "<group>"; };
+ 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cscrollview.h; sourceTree = "<group>"; };
+ 24A2001E0F90D1DD003BB5A7 /* ctabview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ctabview.cpp; sourceTree = "<group>"; };
+ 24A2001F0F90D1DD003BB5A7 /* ctabview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ctabview.h; sourceTree = "<group>"; };
+ 24A200220F90D1DD003BB5A7 /* aeffguieditor_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = aeffguieditor_8cpp.html; sourceTree = "<group>"; };
+ 24A200230F90D1DD003BB5A7 /* aeffguieditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = aeffguieditor_8h.html; sourceTree = "<group>"; };
+ 24A200240F90D1DD003BB5A7 /* annotated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = annotated.html; sourceTree = "<group>"; };
+ 24A200250F90D1DD003BB5A7 /* cfileselector_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cfileselector_8cpp.html; sourceTree = "<group>"; };
+ 24A200260F90D1DD003BB5A7 /* cfileselector_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cfileselector_8h.html; sourceTree = "<group>"; };
+ 24A200270F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_a_eff_g_u_i_editor-members.html"; sourceTree = "<group>"; };
+ 24A200280F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_a_eff_g_u_i_editor.html; sourceTree = "<group>"; };
+ 24A200290F90D1DD003BB5A7 /* class_c_anim_knob-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_anim_knob-members.html"; sourceTree = "<group>"; };
+ 24A2002A0F90D1DD003BB5A7 /* class_c_anim_knob.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_anim_knob.html; sourceTree = "<group>"; };
+ 24A2002B0F90D1DD003BB5A7 /* class_c_anim_knob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_anim_knob.png; sourceTree = "<group>"; };
+ 24A2002C0F90D1DD003BB5A7 /* class_c_attribute_list_entry-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_attribute_list_entry-members.html"; sourceTree = "<group>"; };
+ 24A2002D0F90D1DD003BB5A7 /* class_c_attribute_list_entry.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_attribute_list_entry.html; sourceTree = "<group>"; };
+ 24A2002E0F90D1DD003BB5A7 /* class_c_auto_animation-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_auto_animation-members.html"; sourceTree = "<group>"; };
+ 24A2002F0F90D1DD003BB5A7 /* class_c_auto_animation.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_auto_animation.html; sourceTree = "<group>"; };
+ 24A200300F90D1DD003BB5A7 /* class_c_auto_animation.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_auto_animation.png; sourceTree = "<group>"; };
+ 24A200310F90D1DD003BB5A7 /* class_c_bitmap-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_bitmap-members.html"; sourceTree = "<group>"; };
+ 24A200320F90D1DD003BB5A7 /* class_c_bitmap.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_bitmap.html; sourceTree = "<group>"; };
+ 24A200330F90D1DD003BB5A7 /* class_c_bitmap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_bitmap.png; sourceTree = "<group>"; };
+ 24A200340F90D1DD003BB5A7 /* class_c_c_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_c_view-members.html"; sourceTree = "<group>"; };
+ 24A200350F90D1DD003BB5A7 /* class_c_c_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_c_view.html; sourceTree = "<group>"; };
+ 24A200360F90D1DD003BB5A7 /* class_c_control-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_control-members.html"; sourceTree = "<group>"; };
+ 24A200370F90D1DD003BB5A7 /* class_c_control.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_control.html; sourceTree = "<group>"; };
+ 24A200380F90D1DD003BB5A7 /* class_c_control.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_control.png; sourceTree = "<group>"; };
+ 24A200390F90D1DD003BB5A7 /* class_c_control_listener-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_control_listener-members.html"; sourceTree = "<group>"; };
+ 24A2003A0F90D1DD003BB5A7 /* class_c_control_listener.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_control_listener.html; sourceTree = "<group>"; };
+ 24A2003B0F90D1DD003BB5A7 /* class_c_control_listener.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_control_listener.png; sourceTree = "<group>"; };
+ 24A2003C0F90D1DD003BB5A7 /* class_c_drag_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_drag_container-members.html"; sourceTree = "<group>"; };
+ 24A2003D0F90D1DD003BB5A7 /* class_c_drag_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_drag_container.html; sourceTree = "<group>"; };
+ 24A2003E0F90D1DD003BB5A7 /* class_c_drag_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_drag_container.png; sourceTree = "<group>"; };
+ 24A2003F0F90D1DD003BB5A7 /* class_c_draw_context-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_draw_context-members.html"; sourceTree = "<group>"; };
+ 24A200400F90D1DD003BB5A7 /* class_c_draw_context.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_draw_context.html; sourceTree = "<group>"; };
+ 24A200410F90D1DD003BB5A7 /* class_c_draw_context.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_draw_context.png; sourceTree = "<group>"; };
+ 24A200420F90D1DD003BB5A7 /* class_c_file_selector-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_file_selector-members.html"; sourceTree = "<group>"; };
+ 24A200430F90D1DD003BB5A7 /* class_c_file_selector.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_file_selector.html; sourceTree = "<group>"; };
+ 24A200440F90D1DD003BB5A7 /* class_c_frame-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_frame-members.html"; sourceTree = "<group>"; };
+ 24A200450F90D1DD003BB5A7 /* class_c_frame.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_frame.html; sourceTree = "<group>"; };
+ 24A200460F90D1DD003BB5A7 /* class_c_frame.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_frame.png; sourceTree = "<group>"; };
+ 24A200470F90D1DD003BB5A7 /* class_c_horizontal_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_horizontal_slider-members.html"; sourceTree = "<group>"; };
+ 24A200480F90D1DD003BB5A7 /* class_c_horizontal_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_horizontal_slider.html; sourceTree = "<group>"; };
+ 24A200490F90D1DD003BB5A7 /* class_c_horizontal_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_horizontal_slider.png; sourceTree = "<group>"; };
+ 24A2004A0F90D1DD003BB5A7 /* class_c_horizontal_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_horizontal_switch-members.html"; sourceTree = "<group>"; };
+ 24A2004B0F90D1DD003BB5A7 /* class_c_horizontal_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_horizontal_switch.html; sourceTree = "<group>"; };
+ 24A2004C0F90D1DD003BB5A7 /* class_c_horizontal_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_horizontal_switch.png; sourceTree = "<group>"; };
+ 24A2004D0F90D1DD003BB5A7 /* class_c_kick_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_kick_button-members.html"; sourceTree = "<group>"; };
+ 24A2004E0F90D1DD003BB5A7 /* class_c_kick_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_kick_button.html; sourceTree = "<group>"; };
+ 24A2004F0F90D1DD003BB5A7 /* class_c_kick_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_kick_button.png; sourceTree = "<group>"; };
+ 24A200500F90D1DD003BB5A7 /* class_c_knob-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_knob-members.html"; sourceTree = "<group>"; };
+ 24A200510F90D1DD003BB5A7 /* class_c_knob.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_knob.html; sourceTree = "<group>"; };
+ 24A200520F90D1DD003BB5A7 /* class_c_knob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_knob.png; sourceTree = "<group>"; };
+ 24A200530F90D1DD003BB5A7 /* class_c_movie_bitmap-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_movie_bitmap-members.html"; sourceTree = "<group>"; };
+ 24A200540F90D1DD003BB5A7 /* class_c_movie_bitmap.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_movie_bitmap.html; sourceTree = "<group>"; };
+ 24A200550F90D1DD003BB5A7 /* class_c_movie_bitmap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_movie_bitmap.png; sourceTree = "<group>"; };
+ 24A200560F90D1DD003BB5A7 /* class_c_movie_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_movie_button-members.html"; sourceTree = "<group>"; };
+ 24A200570F90D1DD003BB5A7 /* class_c_movie_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_movie_button.html; sourceTree = "<group>"; };
+ 24A200580F90D1DD003BB5A7 /* class_c_movie_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_movie_button.png; sourceTree = "<group>"; };
+ 24A200590F90D1DD003BB5A7 /* class_c_offscreen_context-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_offscreen_context-members.html"; sourceTree = "<group>"; };
+ 24A2005A0F90D1DD003BB5A7 /* class_c_offscreen_context.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_offscreen_context.html; sourceTree = "<group>"; };
+ 24A2005B0F90D1DD003BB5A7 /* class_c_offscreen_context.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_offscreen_context.png; sourceTree = "<group>"; };
+ 24A2005C0F90D1DD003BB5A7 /* class_c_on_off_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_on_off_button-members.html"; sourceTree = "<group>"; };
+ 24A2005D0F90D1DD003BB5A7 /* class_c_on_off_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_on_off_button.html; sourceTree = "<group>"; };
+ 24A2005E0F90D1DD003BB5A7 /* class_c_on_off_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_on_off_button.png; sourceTree = "<group>"; };
+ 24A2005F0F90D1DD003BB5A7 /* class_c_option_menu-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_option_menu-members.html"; sourceTree = "<group>"; };
+ 24A200600F90D1DD003BB5A7 /* class_c_option_menu.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_option_menu.html; sourceTree = "<group>"; };
+ 24A200610F90D1DD003BB5A7 /* class_c_option_menu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_option_menu.png; sourceTree = "<group>"; };
+ 24A200620F90D1DD003BB5A7 /* class_c_option_menu_scheme-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_option_menu_scheme-members.html"; sourceTree = "<group>"; };
+ 24A200630F90D1DD003BB5A7 /* class_c_option_menu_scheme.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_option_menu_scheme.html; sourceTree = "<group>"; };
+ 24A200640F90D1DD003BB5A7 /* class_c_option_menu_scheme.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_option_menu_scheme.png; sourceTree = "<group>"; };
+ 24A200650F90D1DD003BB5A7 /* class_c_param_display-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_param_display-members.html"; sourceTree = "<group>"; };
+ 24A200660F90D1DD003BB5A7 /* class_c_param_display.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_param_display.html; sourceTree = "<group>"; };
+ 24A200670F90D1DD003BB5A7 /* class_c_param_display.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_param_display.png; sourceTree = "<group>"; };
+ 24A200680F90D1DD003BB5A7 /* class_c_reference_counter-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_reference_counter-members.html"; sourceTree = "<group>"; };
+ 24A200690F90D1DD003BB5A7 /* class_c_reference_counter.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_reference_counter.html; sourceTree = "<group>"; };
+ 24A2006A0F90D1DD003BB5A7 /* class_c_reference_counter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_reference_counter.png; sourceTree = "<group>"; };
+ 24A2006B0F90D1DD003BB5A7 /* class_c_rocker_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_rocker_switch-members.html"; sourceTree = "<group>"; };
+ 24A2006C0F90D1DD003BB5A7 /* class_c_rocker_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_rocker_switch.html; sourceTree = "<group>"; };
+ 24A2006D0F90D1DD003BB5A7 /* class_c_rocker_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_rocker_switch.png; sourceTree = "<group>"; };
+ 24A2006E0F90D1DD003BB5A7 /* class_c_scroll_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scroll_container-members.html"; sourceTree = "<group>"; };
+ 24A2006F0F90D1DD003BB5A7 /* class_c_scroll_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scroll_container.html; sourceTree = "<group>"; };
+ 24A200700F90D1DD003BB5A7 /* class_c_scroll_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scroll_container.png; sourceTree = "<group>"; };
+ 24A200710F90D1DD003BB5A7 /* class_c_scroll_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scroll_view-members.html"; sourceTree = "<group>"; };
+ 24A200720F90D1DD003BB5A7 /* class_c_scroll_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scroll_view.html; sourceTree = "<group>"; };
+ 24A200730F90D1DD003BB5A7 /* class_c_scroll_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scroll_view.png; sourceTree = "<group>"; };
+ 24A200740F90D1DD003BB5A7 /* class_c_scrollbar-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scrollbar-members.html"; sourceTree = "<group>"; };
+ 24A200750F90D1DD003BB5A7 /* class_c_scrollbar.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scrollbar.html; sourceTree = "<group>"; };
+ 24A200760F90D1DD003BB5A7 /* class_c_scrollbar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scrollbar.png; sourceTree = "<group>"; };
+ 24A200770F90D1DD003BB5A7 /* class_c_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_slider-members.html"; sourceTree = "<group>"; };
+ 24A200780F90D1DD003BB5A7 /* class_c_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_slider.html; sourceTree = "<group>"; };
+ 24A200790F90D1DD003BB5A7 /* class_c_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_slider.png; sourceTree = "<group>"; };
+ 24A2007A0F90D1DD003BB5A7 /* class_c_special_digit-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_special_digit-members.html"; sourceTree = "<group>"; };
+ 24A2007B0F90D1DD003BB5A7 /* class_c_special_digit.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_special_digit.html; sourceTree = "<group>"; };
+ 24A2007C0F90D1DD003BB5A7 /* class_c_special_digit.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_special_digit.png; sourceTree = "<group>"; };
+ 24A2007D0F90D1DD003BB5A7 /* class_c_splash_screen-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_splash_screen-members.html"; sourceTree = "<group>"; };
+ 24A2007E0F90D1DD003BB5A7 /* class_c_splash_screen.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_splash_screen.html; sourceTree = "<group>"; };
+ 24A2007F0F90D1DD003BB5A7 /* class_c_splash_screen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_splash_screen.png; sourceTree = "<group>"; };
+ 24A200800F90D1DD003BB5A7 /* class_c_splash_screen_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_splash_screen_view-members.html"; sourceTree = "<group>"; };
+ 24A200810F90D1DD003BB5A7 /* class_c_splash_screen_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_splash_screen_view.html; sourceTree = "<group>"; };
+ 24A200820F90D1DD003BB5A7 /* class_c_splash_screen_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_splash_screen_view.png; sourceTree = "<group>"; };
+ 24A200830F90D1DD003BB5A7 /* class_c_tab_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_button-members.html"; sourceTree = "<group>"; };
+ 24A200840F90D1DD003BB5A7 /* class_c_tab_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_button.html; sourceTree = "<group>"; };
+ 24A200850F90D1DD003BB5A7 /* class_c_tab_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_button.png; sourceTree = "<group>"; };
+ 24A200860F90D1DD003BB5A7 /* class_c_tab_child_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_child_view-members.html"; sourceTree = "<group>"; };
+ 24A200870F90D1DD003BB5A7 /* class_c_tab_child_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_child_view.html; sourceTree = "<group>"; };
+ 24A200880F90D1DD003BB5A7 /* class_c_tab_child_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_child_view.png; sourceTree = "<group>"; };
+ 24A200890F90D1DD003BB5A7 /* class_c_tab_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_view-members.html"; sourceTree = "<group>"; };
+ 24A2008A0F90D1DD003BB5A7 /* class_c_tab_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_view.html; sourceTree = "<group>"; };
+ 24A2008B0F90D1DD003BB5A7 /* class_c_tab_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_view.png; sourceTree = "<group>"; };
+ 24A2008C0F90D1DD003BB5A7 /* class_c_text_edit-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_text_edit-members.html"; sourceTree = "<group>"; };
+ 24A2008D0F90D1DD003BB5A7 /* class_c_text_edit.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_text_edit.html; sourceTree = "<group>"; };
+ 24A2008E0F90D1DD003BB5A7 /* class_c_text_edit.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_text_edit.png; sourceTree = "<group>"; };
+ 24A2008F0F90D1DD003BB5A7 /* class_c_text_label-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_text_label-members.html"; sourceTree = "<group>"; };
+ 24A200900F90D1DD003BB5A7 /* class_c_text_label.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_text_label.html; sourceTree = "<group>"; };
+ 24A200910F90D1DD003BB5A7 /* class_c_text_label.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_text_label.png; sourceTree = "<group>"; };
+ 24A200920F90D1DD003BB5A7 /* class_c_vertical_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vertical_slider-members.html"; sourceTree = "<group>"; };
+ 24A200930F90D1DD003BB5A7 /* class_c_vertical_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vertical_slider.html; sourceTree = "<group>"; };
+ 24A200940F90D1DD003BB5A7 /* class_c_vertical_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vertical_slider.png; sourceTree = "<group>"; };
+ 24A200950F90D1DD003BB5A7 /* class_c_vertical_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vertical_switch-members.html"; sourceTree = "<group>"; };
+ 24A200960F90D1DD003BB5A7 /* class_c_vertical_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vertical_switch.html; sourceTree = "<group>"; };
+ 24A200970F90D1DD003BB5A7 /* class_c_vertical_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vertical_switch.png; sourceTree = "<group>"; };
+ 24A200980F90D1DD003BB5A7 /* class_c_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_view-members.html"; sourceTree = "<group>"; };
+ 24A200990F90D1DD003BB5A7 /* class_c_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_view.html; sourceTree = "<group>"; };
+ 24A2009A0F90D1DD003BB5A7 /* class_c_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_view.png; sourceTree = "<group>"; };
+ 24A2009B0F90D1DD003BB5A7 /* class_c_view_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_view_container-members.html"; sourceTree = "<group>"; };
+ 24A2009C0F90D1DD003BB5A7 /* class_c_view_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_view_container.html; sourceTree = "<group>"; };
+ 24A2009D0F90D1DD003BB5A7 /* class_c_view_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_view_container.png; sourceTree = "<group>"; };
+ 24A2009E0F90D1DD003BB5A7 /* class_c_vu_meter-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vu_meter-members.html"; sourceTree = "<group>"; };
+ 24A2009F0F90D1DD003BB5A7 /* class_c_vu_meter.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vu_meter.html; sourceTree = "<group>"; };
+ 24A200A00F90D1DD003BB5A7 /* class_c_vu_meter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vu_meter.png; sourceTree = "<group>"; };
+ 24A200A10F90D1DD003BB5A7 /* class_i_scrollbar_drawer-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_i_scrollbar_drawer-members.html"; sourceTree = "<group>"; };
+ 24A200A20F90D1DD003BB5A7 /* class_i_scrollbar_drawer.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_i_scrollbar_drawer.html; sourceTree = "<group>"; };
+ 24A200A30F90D1DD003BB5A7 /* class_plugin_g_u_i_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_plugin_g_u_i_editor-members.html"; sourceTree = "<group>"; };
+ 24A200A40F90D1DD003BB5A7 /* class_plugin_g_u_i_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_plugin_g_u_i_editor.html; sourceTree = "<group>"; };
+ 24A200A50F90D1DD003BB5A7 /* cscrollview_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cscrollview_8cpp.html; sourceTree = "<group>"; };
+ 24A200A60F90D1DD003BB5A7 /* cscrollview_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cscrollview_8h.html; sourceTree = "<group>"; };
+ 24A200A70F90D1DD003BB5A7 /* ctabview_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = ctabview_8cpp.html; sourceTree = "<group>"; };
+ 24A200A80F90D1DD003BB5A7 /* ctabview_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = ctabview_8h.html; sourceTree = "<group>"; };
+ 24A200A90F90D1DD003BB5A7 /* deprecated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = deprecated.html; sourceTree = "<group>"; };
+ 24A200AA0F90D1DD003BB5A7 /* doc_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = doc_8h.html; sourceTree = "<group>"; };
+ 24A200AB0F90D1DD003BB5A7 /* doxygen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = doxygen.css; sourceTree = "<group>"; };
+ 24A200AC0F90D1DD003BB5A7 /* doxygen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = doxygen.png; sourceTree = "<group>"; };
+ 24A200AD0F90D1DD003BB5A7 /* files.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = files.html; sourceTree = "<group>"; };
+ 24A200AE0F90D1DD003BB5A7 /* ftv2blank.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2blank.png; sourceTree = "<group>"; };
+ 24A200AF0F90D1DD003BB5A7 /* ftv2doc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2doc.png; sourceTree = "<group>"; };
+ 24A200B00F90D1DD003BB5A7 /* ftv2folderclosed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderclosed.png; sourceTree = "<group>"; };
+ 24A200B10F90D1DE003BB5A7 /* ftv2folderopen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderopen.png; sourceTree = "<group>"; };
+ 24A200B20F90D1DE003BB5A7 /* ftv2lastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2lastnode.png; sourceTree = "<group>"; };
+ 24A200B30F90D1DE003BB5A7 /* ftv2link.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2link.png; sourceTree = "<group>"; };
+ 24A200B40F90D1DE003BB5A7 /* ftv2mlastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mlastnode.png; sourceTree = "<group>"; };
+ 24A200B50F90D1DE003BB5A7 /* ftv2mnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mnode.png; sourceTree = "<group>"; };
+ 24A200B60F90D1DE003BB5A7 /* ftv2node.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2node.png; sourceTree = "<group>"; };
+ 24A200B70F90D1DE003BB5A7 /* ftv2plastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2plastnode.png; sourceTree = "<group>"; };
+ 24A200B80F90D1DE003BB5A7 /* ftv2pnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2pnode.png; sourceTree = "<group>"; };
+ 24A200B90F90D1DE003BB5A7 /* ftv2vertline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2vertline.png; sourceTree = "<group>"; };
+ 24A200BA0F90D1DE003BB5A7 /* functions.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions.html; sourceTree = "<group>"; };
+ 24A200BB0F90D1DE003BB5A7 /* functions_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x62.html; sourceTree = "<group>"; };
+ 24A200BC0F90D1DE003BB5A7 /* functions_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x63.html; sourceTree = "<group>"; };
+ 24A200BD0F90D1DE003BB5A7 /* functions_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x64.html; sourceTree = "<group>"; };
+ 24A200BE0F90D1DE003BB5A7 /* functions_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x65.html; sourceTree = "<group>"; };
+ 24A200BF0F90D1DE003BB5A7 /* functions_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x66.html; sourceTree = "<group>"; };
+ 24A200C00F90D1DE003BB5A7 /* functions_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x67.html; sourceTree = "<group>"; };
+ 24A200C10F90D1DE003BB5A7 /* functions_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x68.html; sourceTree = "<group>"; };
+ 24A200C20F90D1DE003BB5A7 /* functions_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x69.html; sourceTree = "<group>"; };
+ 24A200C30F90D1DE003BB5A7 /* functions_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6b.html; sourceTree = "<group>"; };
+ 24A200C40F90D1DE003BB5A7 /* functions_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6c.html; sourceTree = "<group>"; };
+ 24A200C50F90D1DE003BB5A7 /* functions_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6d.html; sourceTree = "<group>"; };
+ 24A200C60F90D1DE003BB5A7 /* functions_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6e.html; sourceTree = "<group>"; };
+ 24A200C70F90D1DE003BB5A7 /* functions_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6f.html; sourceTree = "<group>"; };
+ 24A200C80F90D1DE003BB5A7 /* functions_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x70.html; sourceTree = "<group>"; };
+ 24A200C90F90D1DE003BB5A7 /* functions_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x72.html; sourceTree = "<group>"; };
+ 24A200CA0F90D1DE003BB5A7 /* functions_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x73.html; sourceTree = "<group>"; };
+ 24A200CB0F90D1DE003BB5A7 /* functions_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x74.html; sourceTree = "<group>"; };
+ 24A200CC0F90D1DE003BB5A7 /* functions_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x75.html; sourceTree = "<group>"; };
+ 24A200CD0F90D1DE003BB5A7 /* functions_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x76.html; sourceTree = "<group>"; };
+ 24A200CE0F90D1DE003BB5A7 /* functions_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x77.html; sourceTree = "<group>"; };
+ 24A200CF0F90D1DE003BB5A7 /* functions_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x78.html; sourceTree = "<group>"; };
+ 24A200D00F90D1DE003BB5A7 /* functions_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x79.html; sourceTree = "<group>"; };
+ 24A200D10F90D1DE003BB5A7 /* functions_0x7a.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x7a.html; sourceTree = "<group>"; };
+ 24A200D20F90D1DE003BB5A7 /* functions_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x7e.html; sourceTree = "<group>"; };
+ 24A200D30F90D1DE003BB5A7 /* functions_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_eval.html; sourceTree = "<group>"; };
+ 24A200D40F90D1DE003BB5A7 /* functions_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func.html; sourceTree = "<group>"; };
+ 24A200D50F90D1DE003BB5A7 /* functions_func_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x62.html; sourceTree = "<group>"; };
+ 24A200D60F90D1DE003BB5A7 /* functions_func_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x63.html; sourceTree = "<group>"; };
+ 24A200D70F90D1DE003BB5A7 /* functions_func_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x64.html; sourceTree = "<group>"; };
+ 24A200D80F90D1DE003BB5A7 /* functions_func_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x65.html; sourceTree = "<group>"; };
+ 24A200D90F90D1DE003BB5A7 /* functions_func_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x66.html; sourceTree = "<group>"; };
+ 24A200DA0F90D1DE003BB5A7 /* functions_func_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x67.html; sourceTree = "<group>"; };
+ 24A200DB0F90D1DE003BB5A7 /* functions_func_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x68.html; sourceTree = "<group>"; };
+ 24A200DC0F90D1DE003BB5A7 /* functions_func_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x69.html; sourceTree = "<group>"; };
+ 24A200DD0F90D1DE003BB5A7 /* functions_func_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6c.html; sourceTree = "<group>"; };
+ 24A200DE0F90D1DE003BB5A7 /* functions_func_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6d.html; sourceTree = "<group>"; };
+ 24A200DF0F90D1DE003BB5A7 /* functions_func_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6e.html; sourceTree = "<group>"; };
+ 24A200E00F90D1DE003BB5A7 /* functions_func_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6f.html; sourceTree = "<group>"; };
+ 24A200E10F90D1DE003BB5A7 /* functions_func_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x70.html; sourceTree = "<group>"; };
+ 24A200E20F90D1DE003BB5A7 /* functions_func_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x72.html; sourceTree = "<group>"; };
+ 24A200E30F90D1DE003BB5A7 /* functions_func_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x73.html; sourceTree = "<group>"; };
+ 24A200E40F90D1DE003BB5A7 /* functions_func_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x74.html; sourceTree = "<group>"; };
+ 24A200E50F90D1DE003BB5A7 /* functions_func_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x75.html; sourceTree = "<group>"; };
+ 24A200E60F90D1DE003BB5A7 /* functions_func_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x76.html; sourceTree = "<group>"; };
+ 24A200E70F90D1DE003BB5A7 /* functions_func_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x77.html; sourceTree = "<group>"; };
+ 24A200E80F90D1DE003BB5A7 /* functions_func_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x7e.html; sourceTree = "<group>"; };
+ 24A200E90F90D1DE003BB5A7 /* functions_rela.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_rela.html; sourceTree = "<group>"; };
+ 24A200EA0F90D1DE003BB5A7 /* functions_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars.html; sourceTree = "<group>"; };
+ 24A200EB0F90D1DE003BB5A7 /* functions_vars_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x62.html; sourceTree = "<group>"; };
+ 24A200EC0F90D1DE003BB5A7 /* functions_vars_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x63.html; sourceTree = "<group>"; };
+ 24A200ED0F90D1DE003BB5A7 /* functions_vars_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x64.html; sourceTree = "<group>"; };
+ 24A200EE0F90D1DE003BB5A7 /* functions_vars_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x65.html; sourceTree = "<group>"; };
+ 24A200EF0F90D1DE003BB5A7 /* functions_vars_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x66.html; sourceTree = "<group>"; };
+ 24A200F00F90D1DE003BB5A7 /* functions_vars_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x67.html; sourceTree = "<group>"; };
+ 24A200F10F90D1DE003BB5A7 /* functions_vars_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x68.html; sourceTree = "<group>"; };
+ 24A200F20F90D1DE003BB5A7 /* functions_vars_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x69.html; sourceTree = "<group>"; };
+ 24A200F30F90D1DE003BB5A7 /* functions_vars_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6b.html; sourceTree = "<group>"; };
+ 24A200F40F90D1DE003BB5A7 /* functions_vars_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6c.html; sourceTree = "<group>"; };
+ 24A200F50F90D1DE003BB5A7 /* functions_vars_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6d.html; sourceTree = "<group>"; };
+ 24A200F60F90D1DE003BB5A7 /* functions_vars_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6e.html; sourceTree = "<group>"; };
+ 24A200F70F90D1DE003BB5A7 /* functions_vars_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6f.html; sourceTree = "<group>"; };
+ 24A200F80F90D1DE003BB5A7 /* functions_vars_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x70.html; sourceTree = "<group>"; };
+ 24A200F90F90D1DE003BB5A7 /* functions_vars_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x72.html; sourceTree = "<group>"; };
+ 24A200FA0F90D1DE003BB5A7 /* functions_vars_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x73.html; sourceTree = "<group>"; };
+ 24A200FB0F90D1DE003BB5A7 /* functions_vars_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x74.html; sourceTree = "<group>"; };
+ 24A200FC0F90D1DE003BB5A7 /* functions_vars_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x75.html; sourceTree = "<group>"; };
+ 24A200FD0F90D1DE003BB5A7 /* functions_vars_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x76.html; sourceTree = "<group>"; };
+ 24A200FE0F90D1DE003BB5A7 /* functions_vars_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x77.html; sourceTree = "<group>"; };
+ 24A200FF0F90D1DE003BB5A7 /* functions_vars_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x78.html; sourceTree = "<group>"; };
+ 24A201000F90D1DE003BB5A7 /* functions_vars_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x79.html; sourceTree = "<group>"; };
+ 24A201010F90D1DE003BB5A7 /* functions_vars_0x7a.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x7a.html; sourceTree = "<group>"; };
+ 24A201020F90D1DE003BB5A7 /* globals.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals.html; sourceTree = "<group>"; };
+ 24A201030F90D1DE003BB5A7 /* globals_0x61.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x61.html; sourceTree = "<group>"; };
+ 24A201040F90D1DE003BB5A7 /* globals_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x62.html; sourceTree = "<group>"; };
+ 24A201050F90D1DE003BB5A7 /* globals_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x63.html; sourceTree = "<group>"; };
+ 24A201060F90D1DE003BB5A7 /* globals_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x65.html; sourceTree = "<group>"; };
+ 24A201070F90D1DE003BB5A7 /* globals_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x66.html; sourceTree = "<group>"; };
+ 24A201080F90D1DE003BB5A7 /* globals_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x67.html; sourceTree = "<group>"; };
+ 24A201090F90D1DE003BB5A7 /* globals_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6b.html; sourceTree = "<group>"; };
+ 24A2010A0F90D1DE003BB5A7 /* globals_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6d.html; sourceTree = "<group>"; };
+ 24A2010B0F90D1DE003BB5A7 /* globals_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6e.html; sourceTree = "<group>"; };
+ 24A2010C0F90D1DE003BB5A7 /* globals_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6f.html; sourceTree = "<group>"; };
+ 24A2010D0F90D1DE003BB5A7 /* globals_0x71.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x71.html; sourceTree = "<group>"; };
+ 24A2010E0F90D1DE003BB5A7 /* globals_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x72.html; sourceTree = "<group>"; };
+ 24A2010F0F90D1DE003BB5A7 /* globals_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x73.html; sourceTree = "<group>"; };
+ 24A201100F90D1DE003BB5A7 /* globals_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x74.html; sourceTree = "<group>"; };
+ 24A201110F90D1DE003BB5A7 /* globals_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x75.html; sourceTree = "<group>"; };
+ 24A201120F90D1DE003BB5A7 /* globals_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x76.html; sourceTree = "<group>"; };
+ 24A201130F90D1DE003BB5A7 /* globals_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x77.html; sourceTree = "<group>"; };
+ 24A201140F90D1DE003BB5A7 /* globals_defs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_defs.html; sourceTree = "<group>"; };
+ 24A201150F90D1DE003BB5A7 /* globals_enum.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_enum.html; sourceTree = "<group>"; };
+ 24A201160F90D1DE003BB5A7 /* globals_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_eval.html; sourceTree = "<group>"; };
+ 24A201170F90D1DE003BB5A7 /* globals_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_type.html; sourceTree = "<group>"; };
+ 24A201180F90D1DE003BB5A7 /* globals_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_vars.html; sourceTree = "<group>"; };
+ 24A201190F90D1DE003BB5A7 /* hierarchy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = hierarchy.html; sourceTree = "<group>"; };
+ 24A2011A0F90D1DE003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = index.html; sourceTree = "<group>"; };
+ 24A2011B0F90D1DE003BB5A7 /* intro.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = intro.html; sourceTree = "<group>"; };
+ 24A2011C0F90D1DE003BB5A7 /* license.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = license.html; sourceTree = "<group>"; };
+ 24A2011D0F90D1DE003BB5A7 /* maceditor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = maceditor.html; sourceTree = "<group>"; };
+ 24A2011E0F90D1DE003BB5A7 /* main.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = main.html; sourceTree = "<group>"; };
+ 24A2011F0F90D1DE003BB5A7 /* others.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = others.html; sourceTree = "<group>"; };
+ 24A201200F90D1DE003BB5A7 /* pages.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = pages.html; sourceTree = "<group>"; };
+ 24A201210F90D1DE003BB5A7 /* plugguieditor_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = plugguieditor_8cpp.html; sourceTree = "<group>"; };
+ 24A201220F90D1DE003BB5A7 /* plugguieditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = plugguieditor_8h.html; sourceTree = "<group>"; };
+ 24A201230F90D1DE003BB5A7 /* sequences.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = sequences.html; sourceTree = "<group>"; };
+ 24A201240F90D1DE003BB5A7 /* struct_c_color-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_color-members.html"; sourceTree = "<group>"; };
+ 24A201250F90D1DE003BB5A7 /* struct_c_color.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_color.html; sourceTree = "<group>"; };
+ 24A201260F90D1DE003BB5A7 /* struct_c_point-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_point-members.html"; sourceTree = "<group>"; };
+ 24A201270F90D1DE003BB5A7 /* struct_c_point.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_point.html; sourceTree = "<group>"; };
+ 24A201280F90D1DE003BB5A7 /* struct_c_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_rect-members.html"; sourceTree = "<group>"; };
+ 24A201290F90D1DE003BB5A7 /* struct_c_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_rect.html; sourceTree = "<group>"; };
+ 24A2012A0F90D1DE003BB5A7 /* struct_e_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_e_rect-members.html"; sourceTree = "<group>"; };
+ 24A2012B0F90D1DE003BB5A7 /* struct_e_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_e_rect.html; sourceTree = "<group>"; };
+ 24A2012C0F90D1DE003BB5A7 /* struct_vst_file_select-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_file_select-members.html"; sourceTree = "<group>"; };
+ 24A2012D0F90D1DE003BB5A7 /* struct_vst_file_select.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_file_select.html; sourceTree = "<group>"; };
+ 24A2012E0F90D1DE003BB5A7 /* struct_vst_file_type-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_file_type-members.html"; sourceTree = "<group>"; };
+ 24A2012F0F90D1DE003BB5A7 /* struct_vst_file_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_file_type.html; sourceTree = "<group>"; };
+ 24A201300F90D1DE003BB5A7 /* struct_vst_key_code-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_key_code-members.html"; sourceTree = "<group>"; };
+ 24A201310F90D1DE003BB5A7 /* struct_vst_key_code.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_key_code.html; sourceTree = "<group>"; };
+ 24A201320F90D1DE003BB5A7 /* tab_b.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_b.gif; sourceTree = "<group>"; };
+ 24A201330F90D1DE003BB5A7 /* tab_l.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_l.gif; sourceTree = "<group>"; };
+ 24A201340F90D1DE003BB5A7 /* tab_r.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_r.gif; sourceTree = "<group>"; };
+ 24A201350F90D1DE003BB5A7 /* tabs.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tabs.css; sourceTree = "<group>"; };
+ 24A201360F90D1DE003BB5A7 /* thanks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = thanks.html; sourceTree = "<group>"; };
+ 24A201370F90D1DE003BB5A7 /* tree.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = tree.html; sourceTree = "<group>"; };
+ 24A201380F90D1DE003BB5A7 /* vstcontrols_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstcontrols_8cpp.html; sourceTree = "<group>"; };
+ 24A201390F90D1DE003BB5A7 /* vstcontrols_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstcontrols_8h.html; sourceTree = "<group>"; };
+ 24A2013A0F90D1DE003BB5A7 /* vstgui_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstgui_8cpp.html; sourceTree = "<group>"; };
+ 24A2013B0F90D1DE003BB5A7 /* vstgui_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstgui_8h.html; sourceTree = "<group>"; };
+ 24A2013C0F90D1DE003BB5A7 /* vstkeycode_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstkeycode_8h.html; sourceTree = "<group>"; };
+ 24A2013D0F90D1DE003BB5A7 /* vstoffline.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstoffline.html; sourceTree = "<group>"; };
+ 24A2013E0F90D1DE003BB5A7 /* vstparamstruct.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstparamstruct.html; sourceTree = "<group>"; };
+ 24A2013F0F90D1DE003BB5A7 /* vstplugscarbon_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugscarbon_8h.html; sourceTree = "<group>"; };
+ 24A201400F90D1DE003BB5A7 /* vstplugsmac_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsmac_8h.html; sourceTree = "<group>"; };
+ 24A201410F90D1DE003BB5A7 /* vstplugsmacho_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsmacho_8h.html; sourceTree = "<group>"; };
+ 24A201420F90D1DE003BB5A7 /* vstplugsquartz_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsquartz_8h.html; sourceTree = "<group>"; };
+ 24A201430F90D1DE003BB5A7 /* whatsnew.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = whatsnew.html; sourceTree = "<group>"; };
+ 24A201440F90D1DE003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = index.html; sourceTree = "<group>"; };
+ 24A201450F90D1DE003BB5A7 /* Migrating from 2.3.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "Migrating from 2.3.rtf"; sourceTree = "<group>"; };
+ 24A201460F90D1DE003BB5A7 /* plugguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plugguieditor.cpp; sourceTree = "<group>"; };
+ 24A201470F90D1DE003BB5A7 /* plugguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plugguieditor.h; sourceTree = "<group>"; };
+ 24A201480F90D1DE003BB5A7 /* vstcontrols.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstcontrols.cpp; sourceTree = "<group>"; };
+ 24A201490F90D1DE003BB5A7 /* vstcontrols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstcontrols.h; sourceTree = "<group>"; };
+ 24A2014A0F90D1DE003BB5A7 /* vstgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstgui.cpp; sourceTree = "<group>"; };
+ 24A2014B0F90D1DE003BB5A7 /* vstgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstgui.h; sourceTree = "<group>"; };
+ 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstkeycode.h; sourceTree = "<group>"; };
+ 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugscarbon.h; sourceTree = "<group>"; };
+ 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsmac.h; sourceTree = "<group>"; };
+ 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsmacho.h; sourceTree = "<group>"; };
+ 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsquartz.h; sourceTree = "<group>"; };
+ 24A2FEBD0F90D1DC003BB5A7 /* Thumbs.db */ = {isa = PBXFileReference; lastKnownFileType = file; path = Thumbs.db; sourceTree = "<group>"; };
+ 24A2FEBE0F90D1DC003BB5A7 /* VST_Logo_Usage_Guideline.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = VST_Logo_Usage_Guideline.pdf; sourceTree = "<group>"; };
+ 24A2FEBF0F90D1DC003BB5A7 /* VSTLogoAlpha.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = VSTLogoAlpha.png; sourceTree = "<group>"; };
+ 24A2FEC00F90D1DC003BB5A7 /* VSTLogoBlack.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = VSTLogoBlack.jpg; sourceTree = "<group>"; };
+ 24A2FEC10F90D1DC003BB5A7 /* VSTLogoWhite.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = VSTLogoWhite.jpg; sourceTree = "<group>"; };
+ 24A2FEC60F90D1DC003BB5A7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ 24A2FEC80F90D1DC003BB5A7 /* VSTMonitor */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.bundle"; path = VSTMonitor; sourceTree = "<group>"; };
+ 24A2FEC90F90D1DC003BB5A7 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PkgInfo; sourceTree = "<group>"; };
+ 24A2FECB0F90D1DC003BB5A7 /* bmp50000.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50000.bmp; sourceTree = "<group>"; };
+ 24A2FECC0F90D1DC003BB5A7 /* bmp50001.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50001.bmp; sourceTree = "<group>"; };
+ 24A2FECD0F90D1DC003BB5A7 /* bmp50002.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50002.bmp; sourceTree = "<group>"; };
+ 24A2FECE0F90D1DC003BB5A7 /* bmp50003.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50003.bmp; sourceTree = "<group>"; };
+ 24A2FECF0F90D1DC003BB5A7 /* bmp50004.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50004.bmp; sourceTree = "<group>"; };
+ 24A2FED00F90D1DC003BB5A7 /* bmp50005.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50005.bmp; sourceTree = "<group>"; };
+ 24A2FED10F90D1DC003BB5A7 /* bmp50006.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50006.bmp; sourceTree = "<group>"; };
+ 24A2FED20F90D1DC003BB5A7 /* bmp50007.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50007.bmp; sourceTree = "<group>"; };
+ 24A2FED30F90D1DC003BB5A7 /* bmp50008.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50008.bmp; sourceTree = "<group>"; };
+ 24A2FED40F90D1DC003BB5A7 /* VSTParamTool.app */ = {isa = PBXFileReference; lastKnownFileType = wrapper.application; path = VSTParamTool.app; sourceTree = "<group>"; };
+ 24A2FED60F90D1DC003BB5A7 /* vstmonitor.dll */ = {isa = PBXFileReference; lastKnownFileType = file; path = vstmonitor.dll; sourceTree = "<group>"; };
+ 24A2FED70F90D1DC003BB5A7 /* vstparamtool.exe */ = {isa = PBXFileReference; lastKnownFileType = file; path = vstparamtool.exe; sourceTree = "<group>"; };
+ 24A2FEDA0F90D1DC003BB5A7 /* folder.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = folder.gif; sourceTree = "<group>"; };
+ 24A2FEDB0F90D1DC003BB5A7 /* mac.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = mac.gif; sourceTree = "<group>"; };
+ 24A2FEDC0F90D1DC003BB5A7 /* vstpluglogo_small.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = vstpluglogo_small.jpg; sourceTree = "<group>"; };
+ 24A2FEDD0F90D1DC003BB5A7 /* win.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = win.gif; sourceTree = "<group>"; };
+ 24A2FEDF0F90D1DC003BB5A7 /* aeffect_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffect_8h.html; sourceTree = "<group>"; };
+ 24A2FEE00F90D1DC003BB5A7 /* aeffectx_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffectx_8h.html; sourceTree = "<group>"; };
+ 24A2FEE10F90D1DC003BB5A7 /* aeffeditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffeditor_8h.html; sourceTree = "<group>"; };
+ 24A2FEE20F90D1DC003BB5A7 /* annotated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = annotated.html; sourceTree = "<group>"; };
+ 24A2FEE30F90D1DC003BB5A7 /* audioeffect_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffect_8cpp.html; sourceTree = "<group>"; };
+ 24A2FEE40F90D1DC003BB5A7 /* audioeffect_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffect_8h.html; sourceTree = "<group>"; };
+ 24A2FEE50F90D1DC003BB5A7 /* audioeffectx_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffectx_8cpp.html; sourceTree = "<group>"; };
+ 24A2FEE60F90D1DC003BB5A7 /* audioeffectx_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffectx_8h.html; sourceTree = "<group>"; };
+ 24A2FEE70F90D1DC003BB5A7 /* Blocksizechange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Blocksizechange.gif; sourceTree = "<group>"; };
+ 24A2FEE80F90D1DC003BB5A7 /* class_a_eff_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_a_eff_editor-members.html"; sourceTree = "<group>"; };
+ 24A2FEE90F90D1DC003BB5A7 /* class_a_eff_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_a_eff_editor.html; sourceTree = "<group>"; };
+ 24A2FEEA0F90D1DC003BB5A7 /* class_audio_effect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_audio_effect-members.html"; sourceTree = "<group>"; };
+ 24A2FEEB0F90D1DC003BB5A7 /* class_audio_effect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_audio_effect.html; sourceTree = "<group>"; };
+ 24A2FEEC0F90D1DC003BB5A7 /* class_audio_effect.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_audio_effect.png; sourceTree = "<group>"; };
+ 24A2FEED0F90D1DC003BB5A7 /* class_audio_effect_x-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_audio_effect_x-members.html"; sourceTree = "<group>"; };
+ 24A2FEEE0F90D1DC003BB5A7 /* class_audio_effect_x.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_audio_effect_x.html; sourceTree = "<group>"; };
+ 24A2FEEF0F90D1DC003BB5A7 /* class_audio_effect_x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_audio_effect_x.png; sourceTree = "<group>"; };
+ 24A2FEF00F90D1DC003BB5A7 /* ControlChanged.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = ControlChanged.gif; sourceTree = "<group>"; };
+ 24A2FEF10F90D1DC003BB5A7 /* deprecated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = deprecated.html; sourceTree = "<group>"; };
+ 24A2FEF20F90D1DC003BB5A7 /* dir_2d3252dd12c84c66c1d25b26bb45a1f5.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_2d3252dd12c84c66c1d25b26bb45a1f5.html; sourceTree = "<group>"; };
+ 24A2FEF30F90D1DC003BB5A7 /* dir_77c628dfee72e555f82d5ef53b733f38.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_77c628dfee72e555f82d5ef53b733f38.html; sourceTree = "<group>"; };
+ 24A2FEF40F90D1DC003BB5A7 /* dir_f81105d3b854bea570aaf3bae5cb64c1.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_f81105d3b854bea570aaf3bae5cb64c1.html; sourceTree = "<group>"; };
+ 24A2FEF50F90D1DC003BB5A7 /* dir_fa0454ab79b4262333bf837ea3d765e9.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_fa0454ab79b4262333bf837ea3d765e9.html; sourceTree = "<group>"; };
+ 24A2FEF60F90D1DC003BB5A7 /* dirs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dirs.html; sourceTree = "<group>"; };
+ 24A2FEF70F90D1DC003BB5A7 /* doc_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = doc_8h.html; sourceTree = "<group>"; };
+ 24A2FEF80F90D1DC003BB5A7 /* doxygen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = doxygen.css; sourceTree = "<group>"; };
+ 24A2FEF90F90D1DC003BB5A7 /* doxygen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = doxygen.png; sourceTree = "<group>"; };
+ 24A2FEFA0F90D1DC003BB5A7 /* files.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = files.html; sourceTree = "<group>"; };
+ 24A2FEFB0F90D1DC003BB5A7 /* ftv2blank.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2blank.png; sourceTree = "<group>"; };
+ 24A2FEFC0F90D1DC003BB5A7 /* ftv2doc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2doc.png; sourceTree = "<group>"; };
+ 24A2FEFD0F90D1DC003BB5A7 /* ftv2folderclosed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderclosed.png; sourceTree = "<group>"; };
+ 24A2FEFE0F90D1DC003BB5A7 /* ftv2folderopen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderopen.png; sourceTree = "<group>"; };
+ 24A2FEFF0F90D1DC003BB5A7 /* ftv2lastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2lastnode.png; sourceTree = "<group>"; };
+ 24A2FF000F90D1DC003BB5A7 /* ftv2link.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2link.png; sourceTree = "<group>"; };
+ 24A2FF010F90D1DC003BB5A7 /* ftv2mlastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mlastnode.png; sourceTree = "<group>"; };
+ 24A2FF020F90D1DC003BB5A7 /* ftv2mnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mnode.png; sourceTree = "<group>"; };
+ 24A2FF030F90D1DC003BB5A7 /* ftv2node.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2node.png; sourceTree = "<group>"; };
+ 24A2FF040F90D1DC003BB5A7 /* ftv2plastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2plastnode.png; sourceTree = "<group>"; };
+ 24A2FF050F90D1DC003BB5A7 /* ftv2pnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2pnode.png; sourceTree = "<group>"; };
+ 24A2FF060F90D1DC003BB5A7 /* ftv2vertline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2vertline.png; sourceTree = "<group>"; };
+ 24A2FF070F90D1DC003BB5A7 /* functions.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions.html; sourceTree = "<group>"; };
+ 24A2FF080F90D1DC003BB5A7 /* functions_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x62.html; sourceTree = "<group>"; };
+ 24A2FF090F90D1DC003BB5A7 /* functions_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x63.html; sourceTree = "<group>"; };
+ 24A2FF0A0F90D1DC003BB5A7 /* functions_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x64.html; sourceTree = "<group>"; };
+ 24A2FF0B0F90D1DC003BB5A7 /* functions_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x65.html; sourceTree = "<group>"; };
+ 24A2FF0C0F90D1DC003BB5A7 /* functions_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x66.html; sourceTree = "<group>"; };
+ 24A2FF0D0F90D1DC003BB5A7 /* functions_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x67.html; sourceTree = "<group>"; };
+ 24A2FF0E0F90D1DC003BB5A7 /* functions_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x68.html; sourceTree = "<group>"; };
+ 24A2FF0F0F90D1DC003BB5A7 /* functions_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x69.html; sourceTree = "<group>"; };
+ 24A2FF100F90D1DC003BB5A7 /* functions_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6b.html; sourceTree = "<group>"; };
+ 24A2FF110F90D1DC003BB5A7 /* functions_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6c.html; sourceTree = "<group>"; };
+ 24A2FF120F90D1DC003BB5A7 /* functions_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6d.html; sourceTree = "<group>"; };
+ 24A2FF130F90D1DC003BB5A7 /* functions_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6e.html; sourceTree = "<group>"; };
+ 24A2FF140F90D1DC003BB5A7 /* functions_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6f.html; sourceTree = "<group>"; };
+ 24A2FF150F90D1DC003BB5A7 /* functions_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x70.html; sourceTree = "<group>"; };
+ 24A2FF160F90D1DC003BB5A7 /* functions_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x72.html; sourceTree = "<group>"; };
+ 24A2FF170F90D1DC003BB5A7 /* functions_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x73.html; sourceTree = "<group>"; };
+ 24A2FF180F90D1DC003BB5A7 /* functions_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x74.html; sourceTree = "<group>"; };
+ 24A2FF190F90D1DC003BB5A7 /* functions_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x75.html; sourceTree = "<group>"; };
+ 24A2FF1A0F90D1DC003BB5A7 /* functions_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x76.html; sourceTree = "<group>"; };
+ 24A2FF1B0F90D1DC003BB5A7 /* functions_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x77.html; sourceTree = "<group>"; };
+ 24A2FF1C0F90D1DC003BB5A7 /* functions_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x78.html; sourceTree = "<group>"; };
+ 24A2FF1D0F90D1DC003BB5A7 /* functions_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x79.html; sourceTree = "<group>"; };
+ 24A2FF1E0F90D1DC003BB5A7 /* functions_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x7e.html; sourceTree = "<group>"; };
+ 24A2FF1F0F90D1DC003BB5A7 /* functions_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_func.html; sourceTree = "<group>"; };
+ 24A2FF200F90D1DC003BB5A7 /* functions_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_vars.html; sourceTree = "<group>"; };
+ 24A2FF210F90D1DC003BB5A7 /* globals.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals.html; sourceTree = "<group>"; };
+ 24A2FF220F90D1DC003BB5A7 /* globals_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x62.html; sourceTree = "<group>"; };
+ 24A2FF230F90D1DC003BB5A7 /* globals_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x63.html; sourceTree = "<group>"; };
+ 24A2FF240F90D1DC003BB5A7 /* globals_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x64.html; sourceTree = "<group>"; };
+ 24A2FF250F90D1DC003BB5A7 /* globals_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x65.html; sourceTree = "<group>"; };
+ 24A2FF260F90D1DC003BB5A7 /* globals_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x66.html; sourceTree = "<group>"; };
+ 24A2FF270F90D1DC003BB5A7 /* globals_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x6b.html; sourceTree = "<group>"; };
+ 24A2FF280F90D1DC003BB5A7 /* globals_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x6d.html; sourceTree = "<group>"; };
+ 24A2FF290F90D1DC003BB5A7 /* globals_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x74.html; sourceTree = "<group>"; };
+ 24A2FF2A0F90D1DC003BB5A7 /* globals_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x76.html; sourceTree = "<group>"; };
+ 24A2FF2B0F90D1DC003BB5A7 /* globals_defs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_defs.html; sourceTree = "<group>"; };
+ 24A2FF2C0F90D1DC003BB5A7 /* globals_enum.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_enum.html; sourceTree = "<group>"; };
+ 24A2FF2D0F90D1DC003BB5A7 /* globals_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval.html; sourceTree = "<group>"; };
+ 24A2FF2E0F90D1DC003BB5A7 /* globals_eval_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x65.html; sourceTree = "<group>"; };
+ 24A2FF2F0F90D1DC003BB5A7 /* globals_eval_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x6b.html; sourceTree = "<group>"; };
+ 24A2FF300F90D1DC003BB5A7 /* globals_eval_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x6d.html; sourceTree = "<group>"; };
+ 24A2FF310F90D1DC003BB5A7 /* globals_eval_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x76.html; sourceTree = "<group>"; };
+ 24A2FF320F90D1DC003BB5A7 /* globals_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_func.html; sourceTree = "<group>"; };
+ 24A2FF330F90D1DC003BB5A7 /* globals_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_type.html; sourceTree = "<group>"; };
+ 24A2FF340F90D1DC003BB5A7 /* globals_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_vars.html; sourceTree = "<group>"; };
+ 24A2FF350F90D1DC003BB5A7 /* hierarchy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = hierarchy.html; sourceTree = "<group>"; };
+ 24A2FF360F90D1DC003BB5A7 /* history.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = history.html; sourceTree = "<group>"; };
+ 24A2FF370F90D1DC003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = "<group>"; };
+ 24A2FF380F90D1DC003BB5A7 /* Initialisation.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Initialisation.gif; sourceTree = "<group>"; };
+ 24A2FF390F90D1DC003BB5A7 /* intro.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = intro.html; sourceTree = "<group>"; };
+ 24A2FF3A0F90D1DC003BB5A7 /* IOchange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = IOchange.gif; sourceTree = "<group>"; };
+ 24A2FF3B0F90D1DC003BB5A7 /* license.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = license.html; sourceTree = "<group>"; };
+ 24A2FF3C0F90D1DC003BB5A7 /* maceditor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = maceditor.html; sourceTree = "<group>"; };
+ 24A2FF3D0F90D1DC003BB5A7 /* main.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = main.html; sourceTree = "<group>"; };
+ 24A2FF3E0F90D1DC003BB5A7 /* namespace_host_can_dos.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespace_host_can_dos.html; sourceTree = "<group>"; };
+ 24A2FF3F0F90D1DC003BB5A7 /* namespace_plug_can_dos.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespace_plug_can_dos.html; sourceTree = "<group>"; };
+ 24A2FF400F90D1DC003BB5A7 /* namespacemembers.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespacemembers.html; sourceTree = "<group>"; };
+ 24A2FF410F90D1DC003BB5A7 /* namespacemembers_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespacemembers_vars.html; sourceTree = "<group>"; };
+ 24A2FF420F90D1DC003BB5A7 /* namespaces.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespaces.html; sourceTree = "<group>"; };
+ 24A2FF430F90D1DC003BB5A7 /* Offlineprocessing.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Offlineprocessing.gif; sourceTree = "<group>"; };
+ 24A2FF440F90D1DC003BB5A7 /* others.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = others.html; sourceTree = "<group>"; };
+ 24A2FF450F90D1DC003BB5A7 /* pages.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = pages.html; sourceTree = "<group>"; };
+ 24A2FF460F90D1DC003BB5A7 /* Sampleratechange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Sampleratechange.gif; sourceTree = "<group>"; };
+ 24A2FF470F90D1DC003BB5A7 /* sequences.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sequences.html; sourceTree = "<group>"; };
+ 24A2FF480F90D1DC003BB5A7 /* SpeakerarrangementnegotiationforVSTfx.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = SpeakerarrangementnegotiationforVSTfx.gif; sourceTree = "<group>"; };
+ 24A2FF490F90D1DC003BB5A7 /* struct_a_effect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_a_effect-members.html"; sourceTree = "<group>"; };
+ 24A2FF4A0F90D1DC003BB5A7 /* struct_a_effect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_a_effect.html; sourceTree = "<group>"; };
+ 24A2FF4B0F90D1DC003BB5A7 /* struct_e_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_e_rect-members.html"; sourceTree = "<group>"; };
+ 24A2FF4C0F90D1DC003BB5A7 /* struct_e_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_e_rect.html; sourceTree = "<group>"; };
+ 24A2FF4D0F90D1DC003BB5A7 /* struct_midi_key_name-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_key_name-members.html"; sourceTree = "<group>"; };
+ 24A2FF4E0F90D1DC003BB5A7 /* struct_midi_key_name.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_key_name.html; sourceTree = "<group>"; };
+ 24A2FF4F0F90D1DC003BB5A7 /* struct_midi_program_category-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_program_category-members.html"; sourceTree = "<group>"; };
+ 24A2FF500F90D1DC003BB5A7 /* struct_midi_program_category.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_program_category.html; sourceTree = "<group>"; };
+ 24A2FF510F90D1DC003BB5A7 /* struct_midi_program_name-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_program_name-members.html"; sourceTree = "<group>"; };
+ 24A2FF520F90D1DC003BB5A7 /* struct_midi_program_name.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_program_name.html; sourceTree = "<group>"; };
+ 24A2FF530F90D1DC003BB5A7 /* struct_vst_audio_file-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_audio_file-members.html"; sourceTree = "<group>"; };
+ 24A2FF540F90D1DC003BB5A7 /* struct_vst_audio_file.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_audio_file.html; sourceTree = "<group>"; };
+ 24A2FF550F90D1DC003BB5A7 /* struct_vst_audio_file_marker-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_audio_file_marker-members.html"; sourceTree = "<group>"; };
+ 24A2FF560F90D1DC003BB5A7 /* struct_vst_audio_file_marker.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_audio_file_marker.html; sourceTree = "<group>"; };
+ 24A2FF570F90D1DC003BB5A7 /* struct_vst_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_event-members.html"; sourceTree = "<group>"; };
+ 24A2FF580F90D1DC003BB5A7 /* struct_vst_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_event.html; sourceTree = "<group>"; };
+ 24A2FF590F90D1DD003BB5A7 /* struct_vst_events-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_events-members.html"; sourceTree = "<group>"; };
+ 24A2FF5A0F90D1DD003BB5A7 /* struct_vst_events.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_events.html; sourceTree = "<group>"; };
+ 24A2FF5B0F90D1DD003BB5A7 /* struct_vst_file_select-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_file_select-members.html"; sourceTree = "<group>"; };
+ 24A2FF5C0F90D1DD003BB5A7 /* struct_vst_file_select.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_file_select.html; sourceTree = "<group>"; };
+ 24A2FF5D0F90D1DD003BB5A7 /* struct_vst_file_type-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_file_type-members.html"; sourceTree = "<group>"; };
+ 24A2FF5E0F90D1DD003BB5A7 /* struct_vst_file_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_file_type.html; sourceTree = "<group>"; };
+ 24A2FF5F0F90D1DD003BB5A7 /* struct_vst_key_code-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_key_code-members.html"; sourceTree = "<group>"; };
+ 24A2FF600F90D1DD003BB5A7 /* struct_vst_key_code.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_key_code.html; sourceTree = "<group>"; };
+ 24A2FF610F90D1DD003BB5A7 /* struct_vst_midi_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_midi_event-members.html"; sourceTree = "<group>"; };
+ 24A2FF620F90D1DD003BB5A7 /* struct_vst_midi_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_midi_event.html; sourceTree = "<group>"; };
+ 24A2FF630F90D1DD003BB5A7 /* struct_vst_midi_sysex_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_midi_sysex_event-members.html"; sourceTree = "<group>"; };
+ 24A2FF640F90D1DD003BB5A7 /* struct_vst_midi_sysex_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_midi_sysex_event.html; sourceTree = "<group>"; };
+ 24A2FF650F90D1DD003BB5A7 /* struct_vst_offline_task-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_offline_task-members.html"; sourceTree = "<group>"; };
+ 24A2FF660F90D1DD003BB5A7 /* struct_vst_offline_task.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_offline_task.html; sourceTree = "<group>"; };
+ 24A2FF670F90D1DD003BB5A7 /* struct_vst_parameter_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_parameter_properties-members.html"; sourceTree = "<group>"; };
+ 24A2FF680F90D1DD003BB5A7 /* struct_vst_parameter_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_parameter_properties.html; sourceTree = "<group>"; };
+ 24A2FF690F90D1DD003BB5A7 /* struct_vst_patch_chunk_info-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_patch_chunk_info-members.html"; sourceTree = "<group>"; };
+ 24A2FF6A0F90D1DD003BB5A7 /* struct_vst_patch_chunk_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_patch_chunk_info.html; sourceTree = "<group>"; };
+ 24A2FF6B0F90D1DD003BB5A7 /* struct_vst_pin_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_pin_properties-members.html"; sourceTree = "<group>"; };
+ 24A2FF6C0F90D1DD003BB5A7 /* struct_vst_pin_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_pin_properties.html; sourceTree = "<group>"; };
+ 24A2FF6D0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_speaker_arrangement-members.html"; sourceTree = "<group>"; };
+ 24A2FF6E0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_speaker_arrangement.html; sourceTree = "<group>"; };
+ 24A2FF6F0F90D1DD003BB5A7 /* struct_vst_speaker_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_speaker_properties-members.html"; sourceTree = "<group>"; };
+ 24A2FF700F90D1DD003BB5A7 /* struct_vst_speaker_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_speaker_properties.html; sourceTree = "<group>"; };
+ 24A2FF710F90D1DD003BB5A7 /* struct_vst_time_info-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_time_info-members.html"; sourceTree = "<group>"; };
+ 24A2FF720F90D1DD003BB5A7 /* struct_vst_time_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_time_info.html; sourceTree = "<group>"; };
+ 24A2FF730F90D1DD003BB5A7 /* struct_vst_variable_io-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_variable_io-members.html"; sourceTree = "<group>"; };
+ 24A2FF740F90D1DD003BB5A7 /* struct_vst_variable_io.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_variable_io.html; sourceTree = "<group>"; };
+ 24A2FF750F90D1DD003BB5A7 /* struct_vst_window-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_window-members.html"; sourceTree = "<group>"; };
+ 24A2FF760F90D1DD003BB5A7 /* struct_vst_window.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_window.html; sourceTree = "<group>"; };
+ 24A2FF770F90D1DD003BB5A7 /* structfx_bank-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "structfx_bank-members.html"; sourceTree = "<group>"; };
+ 24A2FF780F90D1DD003BB5A7 /* structfx_bank.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = structfx_bank.html; sourceTree = "<group>"; };
+ 24A2FF790F90D1DD003BB5A7 /* structfx_program-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "structfx_program-members.html"; sourceTree = "<group>"; };
+ 24A2FF7A0F90D1DD003BB5A7 /* structfx_program.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = structfx_program.html; sourceTree = "<group>"; };
+ 24A2FF7B0F90D1DD003BB5A7 /* tab_b.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_b.gif; sourceTree = "<group>"; };
+ 24A2FF7C0F90D1DD003BB5A7 /* tab_l.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_l.gif; sourceTree = "<group>"; };
+ 24A2FF7D0F90D1DD003BB5A7 /* tab_r.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_r.gif; sourceTree = "<group>"; };
+ 24A2FF7E0F90D1DD003BB5A7 /* tabs.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tabs.css; sourceTree = "<group>"; };
+ 24A2FF7F0F90D1DD003BB5A7 /* Termination.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Termination.gif; sourceTree = "<group>"; };
+ 24A2FF800F90D1DD003BB5A7 /* thanks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = thanks.html; sourceTree = "<group>"; };
+ 24A2FF810F90D1DD003BB5A7 /* tree.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = tree.html; sourceTree = "<group>"; };
+ 24A2FF820F90D1DD003BB5A7 /* TurnOff.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TurnOff.gif; sourceTree = "<group>"; };
+ 24A2FF830F90D1DD003BB5A7 /* TurnOn.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TurnOn.gif; sourceTree = "<group>"; };
+ 24A2FF840F90D1DD003BB5A7 /* vstfxstore_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstfxstore_8h.html; sourceTree = "<group>"; };
+ 24A2FF850F90D1DD003BB5A7 /* vstoffline.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstoffline.html; sourceTree = "<group>"; };
+ 24A2FF860F90D1DD003BB5A7 /* vstparamstruct.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstparamstruct.html; sourceTree = "<group>"; };
+ 24A2FF870F90D1DD003BB5A7 /* vstpluglogo.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = vstpluglogo.jpg; sourceTree = "<group>"; };
+ 24A2FF880F90D1DD003BB5A7 /* vstplugmain_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstplugmain_8cpp.html; sourceTree = "<group>"; };
+ 24A2FF890F90D1DD003BB5A7 /* whatsnew.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = whatsnew.html; sourceTree = "<group>"; };
+ 24A2FF8A0F90D1DD003BB5A7 /* sdk.menu.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sdk.menu.html; sourceTree = "<group>"; };
+ 24A2FF8B0F90D1DD003BB5A7 /* sdk.overview.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sdk.overview.html; sourceTree = "<group>"; };
+ 24A2FF8C0F90D1DD003BB5A7 /* sdkdoc.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = sdkdoc.css; sourceTree = "<group>"; };
+ 24A2FF8D0F90D1DD003BB5A7 /* VST Licensing Agreement.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "VST Licensing Agreement.rtf"; sourceTree = "<group>"; };
+ 24A2FF8E0F90D1DD003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = "<group>"; };
+ 24A2FF910F90D1DD003BB5A7 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
+ 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
+ 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
+ 24A2FF980F90D1DD003BB5A7 /* adelay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adelay.cpp; sourceTree = "<group>"; };
+ 24A2FF990F90D1DD003BB5A7 /* adelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adelay.h; sourceTree = "<group>"; };
+ 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adelaymain.cpp; sourceTree = "<group>"; };
+ 24A2FF9D0F90D1DD003BB5A7 /* bmp00128.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00128.bmp; sourceTree = "<group>"; };
+ 24A2FF9E0F90D1DD003BB5A7 /* bmp00129.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00129.bmp; sourceTree = "<group>"; };
+ 24A2FF9F0F90D1DD003BB5A7 /* bmp00130.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00130.bmp; sourceTree = "<group>"; };
+ 24A2FFA00F90D1DD003BB5A7 /* surrounddelay.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = surrounddelay.rc; sourceTree = "<group>"; };
+ 24A2FFA10F90D1DD003BB5A7 /* sdeditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sdeditor.cpp; sourceTree = "<group>"; };
+ 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sdeditor.h; sourceTree = "<group>"; };
+ 24A2FFA30F90D1DD003BB5A7 /* surrounddelay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = surrounddelay.cpp; sourceTree = "<group>"; };
+ 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = surrounddelay.h; sourceTree = "<group>"; };
+ 24A2FFA60F90D1DD003BB5A7 /* adelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = adelay.vcproj; sourceTree = "<group>"; };
+ 24A2FFA70F90D1DD003BB5A7 /* surrounddelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = surrounddelay.vcproj; sourceTree = "<group>"; };
+ 24A2FFAA0F90D1DD003BB5A7 /* again.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = again.cpp; sourceTree = "<group>"; };
+ 24A2FFAB0F90D1DD003BB5A7 /* again.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = again.h; sourceTree = "<group>"; };
+ 24A2FFAD0F90D1DD003BB5A7 /* again.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = again.vcproj; sourceTree = "<group>"; };
+ 24A2FFAF0F90D1DD003BB5A7 /* minihost-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "minihost-Info.plist"; sourceTree = "<group>"; };
+ 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = "vst 2.4 examples.xcodeproj"; sourceTree = "<group>"; };
+ 24A2FFB30F90D1DD003BB5A7 /* vst2.4Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = vst2.4Info.plist; sourceTree = "<group>"; };
+ 24A2FFB60F90D1DD003BB5A7 /* minieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minieditor.cpp; sourceTree = "<group>"; };
+ 24A2FFB70F90D1DD003BB5A7 /* minihost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minihost.cpp; sourceTree = "<group>"; };
+ 24A2FFB90F90D1DD003BB5A7 /* minihost.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = minihost.vcproj; sourceTree = "<group>"; };
+ 24A2FFBC0F90D1DD003BB5A7 /* vstxsynth.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.rc; sourceTree = "<group>"; };
+ 24A2FFBD0F90D1DD003BB5A7 /* vstxsynth.vstxml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.vstxml; sourceTree = "<group>"; };
+ 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gmnames.h; sourceTree = "<group>"; };
+ 24A2FFC00F90D1DD003BB5A7 /* vstxsynth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstxsynth.cpp; sourceTree = "<group>"; };
+ 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstxsynth.h; sourceTree = "<group>"; };
+ 24A2FFC20F90D1DD003BB5A7 /* vstxsynthproc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstxsynthproc.cpp; sourceTree = "<group>"; };
+ 24A2FFC40F90D1DD003BB5A7 /* vstxsynth.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = vstxsynth.vcproj; sourceTree = "<group>"; };
+ 24A2FFC60F90D1DD003BB5A7 /* samples.sln */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.sln; sourceTree = "<group>"; };
+ 24A2FFC70F90D1DD003BB5A7 /* vstplug.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstplug.def; sourceTree = "<group>"; };
+ 24A2FFC90F90D1DD003BB5A7 /* adelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = adelay.vcproj; sourceTree = "<group>"; };
+ 24A2FFCA0F90D1DD003BB5A7 /* again.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = again.vcproj; sourceTree = "<group>"; };
+ 24A2FFCB0F90D1DD003BB5A7 /* minihost.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = minihost.vcproj; sourceTree = "<group>"; };
+ 24A2FFCC0F90D1DD003BB5A7 /* samples.sln */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.sln; sourceTree = "<group>"; };
+ 24A2FFCD0F90D1DD003BB5A7 /* surrounddelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = surrounddelay.vcproj; sourceTree = "<group>"; };
+ 24A2FFCE0F90D1DD003BB5A7 /* vstxsynth.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = vstxsynth.vcproj; sourceTree = "<group>"; };
+ 24A2FFD00F90D1DD003BB5A7 /* adelay.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = adelay.dsp; sourceTree = "<group>"; };
+ 24A2FFD10F90D1DD003BB5A7 /* again.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = again.dsp; sourceTree = "<group>"; };
+ 24A2FFD20F90D1DD003BB5A7 /* minihost.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = minihost.dsp; sourceTree = "<group>"; };
+ 24A2FFD30F90D1DD003BB5A7 /* samples.dsw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.dsw; sourceTree = "<group>"; };
+ 24A2FFD40F90D1DD003BB5A7 /* surrounddelay.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = surrounddelay.dsp; sourceTree = "<group>"; };
+ 24A2FFD50F90D1DD003BB5A7 /* vstxsynth.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.dsp; sourceTree = "<group>"; };
+ 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
+ 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
+ 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
+ 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
+ 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
+ 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
+ 24A2FFE10F90D1DD003BB5A7 /* audiounit.exp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.exports; path = audiounit.exp; sourceTree = "<group>"; };
+ 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = "cw_vst_prefix.pch++"; sourceTree = "<group>"; };
+ 24A2FFE30F90D1DD003BB5A7 /* drawtest.cw9prj */ = {isa = PBXFileReference; lastKnownFileType = file; path = drawtest.cw9prj; sourceTree = "<group>"; };
+ 24A2FFE40F90D1DD003BB5A7 /* drawtest.plc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.plc; sourceTree = "<group>"; };
+ 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = drawtest.xcode; sourceTree = "<group>"; };
+ 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = drawtest.xcodeproj; sourceTree = "<group>"; };
+ 24A2FFEB0F90D1DD003BB5A7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_au_prefix.h; sourceTree = "<group>"; };
+ 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_vst_prefix.h; sourceTree = "<group>"; };
+ 24A2FFEF0F90D1DD003BB5A7 /* audiounit.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = audiounit.r; sourceTree = "<group>"; };
+ 24A2FFF00F90D1DD003BB5A7 /* bmp00001.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp00001.png; sourceTree = "<group>"; };
+ 24A2FFF10F90D1DD003BB5A7 /* bmp00100.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp00100.png; sourceTree = "<group>"; };
+ 24A2FFF20F90D1DD003BB5A7 /* bmp01000.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp01000.png; sourceTree = "<group>"; };
+ 24A2FFF30F90D1DD003BB5A7 /* bmp10001.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10001.bmp; sourceTree = "<group>"; };
+ 24A2FFF40F90D1DD003BB5A7 /* bmp10002.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10002.bmp; sourceTree = "<group>"; };
+ 24A2FFF50F90D1DD003BB5A7 /* bmp10003.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10003.bmp; sourceTree = "<group>"; };
+ 24A2FFF60F90D1DD003BB5A7 /* bmp10004.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10004.bmp; sourceTree = "<group>"; };
+ 24A2FFF70F90D1DD003BB5A7 /* bmp10005.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10005.bmp; sourceTree = "<group>"; };
+ 24A2FFF80F90D1DD003BB5A7 /* bmp10006.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10006.bmp; sourceTree = "<group>"; };
+ 24A2FFF90F90D1DD003BB5A7 /* bmp10007.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10007.bmp; sourceTree = "<group>"; };
+ 24A2FFFA0F90D1DD003BB5A7 /* bmp10008.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10008.bmp; sourceTree = "<group>"; };
+ 24A2FFFB0F90D1DD003BB5A7 /* bmp10009.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10009.bmp; sourceTree = "<group>"; };
+ 24A2FFFC0F90D1DD003BB5A7 /* bmp10010.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10010.bmp; sourceTree = "<group>"; };
+ 24A2FFFD0F90D1DD003BB5A7 /* bmp10011.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10011.bmp; sourceTree = "<group>"; };
+ 24A2FFFE0F90D1DD003BB5A7 /* bmp10012.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10012.bmp; sourceTree = "<group>"; };
+ 24A2FFFF0F90D1DD003BB5A7 /* bmp10013.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10013.bmp; sourceTree = "<group>"; };
+ 24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
+ 24D8286F09A914000093AEF8 /* DitherFloatProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DitherFloatProc.cpp; path = source/DitherFloatProc.cpp; sourceTree = "<group>"; };
+ 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; };
+ 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXGroup section */
+ 089C166AFE841209C02AAC07 /* FM-Chopper */ = {
+ isa = PBXGroup;
+ children = (
+ 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
+ 19C28FB4FE9D528D11CA2CBB /* Products */,
+ 089C167CFE841241C02AAC07 /* Resources */,
+ 08FB77ADFE841716C02AAC07 /* Source */,
+ 24A2FEBB0F90D1DB003BB5A7 /* vstsdk2.4 */,
+ );
+ name = "FM-Chopper";
+ sourceTree = "<group>";
+ };
+ 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ 2434720A098313350063BBF1 /* QuickTime.framework */,
+ 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */,
+ );
+ name = "External Frameworks and Libraries";
+ sourceTree = "<group>";
+ };
+ 089C167CFE841241C02AAC07 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */,
+ 24CFB70307E7A0220081BD57 /* PkgInfo */,
+ 8D01CCD10486CAD60068D4B7 /* Info.plist */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 08FB77ADFE841716C02AAC07 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 2407DEB6089929BA00EB68BF /* DitherFloat.cpp */,
+ 24D8286F09A914000093AEF8 /* DitherFloatProc.cpp */,
+ 245463B80991757100464AD3 /* DitherFloat.h */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 19C28FB4FE9D528D11CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 2407DE920899296600EB68BF /* DitherFloat.vst */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 24A200030F90D1DD003BB5A7 /* source */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200040F90D1DD003BB5A7 /* controlsgui.cpp */,
+ 24A200050F90D1DD003BB5A7 /* controlsgui.h */,
+ 24A200060F90D1DD003BB5A7 /* pdrawtesteditor.cpp */,
+ 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */,
+ 24A200080F90D1DD003BB5A7 /* pdrawtesteffect.cpp */,
+ 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */,
+ 24A2000A0F90D1DD003BB5A7 /* pdrawtestmain.cpp */,
+ 24A2000B0F90D1DD003BB5A7 /* pdrawtestview.cpp */,
+ 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */,
+ 24A2000D0F90D1DD003BB5A7 /* pprimitivesviews.cpp */,
+ 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */,
+ );
+ name = source;
+ path = /vstsdk2.4/vstgui.sf/drawtest/source;
+ sourceTree = "<absolute>";
+ };
+ 24A2000F0F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200100F90D1DD003BB5A7 /* drawtest.def */,
+ 24A200110F90D1DD003BB5A7 /* drawtest.rc */,
+ 24A200120F90D1DD003BB5A7 /* drawtest.vcproj */,
+ );
+ name = win;
+ path = /vstsdk2.4/vstgui.sf/drawtest/win;
+ sourceTree = "<absolute>";
+ };
+ 24A200130F90D1DD003BB5A7 /* win.vc6 */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200140F90D1DD003BB5A7 /* drawtest.dsp */,
+ 24A200150F90D1DD003BB5A7 /* drawtest.dsw */,
+ );
+ name = win.vc6;
+ path = /vstsdk2.4/vstgui.sf/drawtest/win.vc6;
+ sourceTree = "<absolute>";
+ };
+ 24A200160F90D1DD003BB5A7 /* vstgui */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200170F90D1DD003BB5A7 /* aeffguieditor.cpp */,
+ 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */,
+ 24A200190F90D1DD003BB5A7 /* cfileselector.cpp */,
+ 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */,
+ 24A2001B0F90D1DD003BB5A7 /* Changelog */,
+ 24A2001C0F90D1DD003BB5A7 /* cscrollview.cpp */,
+ 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */,
+ 24A2001E0F90D1DD003BB5A7 /* ctabview.cpp */,
+ 24A2001F0F90D1DD003BB5A7 /* ctabview.h */,
+ 24A200200F90D1DD003BB5A7 /* Documentation */,
+ 24A201460F90D1DE003BB5A7 /* plugguieditor.cpp */,
+ 24A201470F90D1DE003BB5A7 /* plugguieditor.h */,
+ 24A201480F90D1DE003BB5A7 /* vstcontrols.cpp */,
+ 24A201490F90D1DE003BB5A7 /* vstcontrols.h */,
+ 24A2014A0F90D1DE003BB5A7 /* vstgui.cpp */,
+ 24A2014B0F90D1DE003BB5A7 /* vstgui.h */,
+ 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */,
+ 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */,
+ 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */,
+ 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */,
+ 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */,
+ );
+ name = vstgui;
+ path = /vstsdk2.4/vstgui.sf/vstgui;
+ sourceTree = "<absolute>";
+ };
+ 24A200200F90D1DD003BB5A7 /* Documentation */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200210F90D1DD003BB5A7 /* html */,
+ 24A201440F90D1DE003BB5A7 /* index.html */,
+ 24A201450F90D1DE003BB5A7 /* Migrating from 2.3.rtf */,
+ );
+ name = Documentation;
+ path = /vstsdk2.4/vstgui.sf/vstgui/Documentation;
+ sourceTree = "<absolute>";
+ };
+ 24A200210F90D1DD003BB5A7 /* html */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200220F90D1DD003BB5A7 /* aeffguieditor_8cpp.html */,
+ 24A200230F90D1DD003BB5A7 /* aeffguieditor_8h.html */,
+ 24A200240F90D1DD003BB5A7 /* annotated.html */,
+ 24A200250F90D1DD003BB5A7 /* cfileselector_8cpp.html */,
+ 24A200260F90D1DD003BB5A7 /* cfileselector_8h.html */,
+ 24A200270F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor-members.html */,
+ 24A200280F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor.html */,
+ 24A200290F90D1DD003BB5A7 /* class_c_anim_knob-members.html */,
+ 24A2002A0F90D1DD003BB5A7 /* class_c_anim_knob.html */,
+ 24A2002B0F90D1DD003BB5A7 /* class_c_anim_knob.png */,
+ 24A2002C0F90D1DD003BB5A7 /* class_c_attribute_list_entry-members.html */,
+ 24A2002D0F90D1DD003BB5A7 /* class_c_attribute_list_entry.html */,
+ 24A2002E0F90D1DD003BB5A7 /* class_c_auto_animation-members.html */,
+ 24A2002F0F90D1DD003BB5A7 /* class_c_auto_animation.html */,
+ 24A200300F90D1DD003BB5A7 /* class_c_auto_animation.png */,
+ 24A200310F90D1DD003BB5A7 /* class_c_bitmap-members.html */,
+ 24A200320F90D1DD003BB5A7 /* class_c_bitmap.html */,
+ 24A200330F90D1DD003BB5A7 /* class_c_bitmap.png */,
+ 24A200340F90D1DD003BB5A7 /* class_c_c_view-members.html */,
+ 24A200350F90D1DD003BB5A7 /* class_c_c_view.html */,
+ 24A200360F90D1DD003BB5A7 /* class_c_control-members.html */,
+ 24A200370F90D1DD003BB5A7 /* class_c_control.html */,
+ 24A200380F90D1DD003BB5A7 /* class_c_control.png */,
+ 24A200390F90D1DD003BB5A7 /* class_c_control_listener-members.html */,
+ 24A2003A0F90D1DD003BB5A7 /* class_c_control_listener.html */,
+ 24A2003B0F90D1DD003BB5A7 /* class_c_control_listener.png */,
+ 24A2003C0F90D1DD003BB5A7 /* class_c_drag_container-members.html */,
+ 24A2003D0F90D1DD003BB5A7 /* class_c_drag_container.html */,
+ 24A2003E0F90D1DD003BB5A7 /* class_c_drag_container.png */,
+ 24A2003F0F90D1DD003BB5A7 /* class_c_draw_context-members.html */,
+ 24A200400F90D1DD003BB5A7 /* class_c_draw_context.html */,
+ 24A200410F90D1DD003BB5A7 /* class_c_draw_context.png */,
+ 24A200420F90D1DD003BB5A7 /* class_c_file_selector-members.html */,
+ 24A200430F90D1DD003BB5A7 /* class_c_file_selector.html */,
+ 24A200440F90D1DD003BB5A7 /* class_c_frame-members.html */,
+ 24A200450F90D1DD003BB5A7 /* class_c_frame.html */,
+ 24A200460F90D1DD003BB5A7 /* class_c_frame.png */,
+ 24A200470F90D1DD003BB5A7 /* class_c_horizontal_slider-members.html */,
+ 24A200480F90D1DD003BB5A7 /* class_c_horizontal_slider.html */,
+ 24A200490F90D1DD003BB5A7 /* class_c_horizontal_slider.png */,
+ 24A2004A0F90D1DD003BB5A7 /* class_c_horizontal_switch-members.html */,
+ 24A2004B0F90D1DD003BB5A7 /* class_c_horizontal_switch.html */,
+ 24A2004C0F90D1DD003BB5A7 /* class_c_horizontal_switch.png */,
+ 24A2004D0F90D1DD003BB5A7 /* class_c_kick_button-members.html */,
+ 24A2004E0F90D1DD003BB5A7 /* class_c_kick_button.html */,
+ 24A2004F0F90D1DD003BB5A7 /* class_c_kick_button.png */,
+ 24A200500F90D1DD003BB5A7 /* class_c_knob-members.html */,
+ 24A200510F90D1DD003BB5A7 /* class_c_knob.html */,
+ 24A200520F90D1DD003BB5A7 /* class_c_knob.png */,
+ 24A200530F90D1DD003BB5A7 /* class_c_movie_bitmap-members.html */,
+ 24A200540F90D1DD003BB5A7 /* class_c_movie_bitmap.html */,
+ 24A200550F90D1DD003BB5A7 /* class_c_movie_bitmap.png */,
+ 24A200560F90D1DD003BB5A7 /* class_c_movie_button-members.html */,
+ 24A200570F90D1DD003BB5A7 /* class_c_movie_button.html */,
+ 24A200580F90D1DD003BB5A7 /* class_c_movie_button.png */,
+ 24A200590F90D1DD003BB5A7 /* class_c_offscreen_context-members.html */,
+ 24A2005A0F90D1DD003BB5A7 /* class_c_offscreen_context.html */,
+ 24A2005B0F90D1DD003BB5A7 /* class_c_offscreen_context.png */,
+ 24A2005C0F90D1DD003BB5A7 /* class_c_on_off_button-members.html */,
+ 24A2005D0F90D1DD003BB5A7 /* class_c_on_off_button.html */,
+ 24A2005E0F90D1DD003BB5A7 /* class_c_on_off_button.png */,
+ 24A2005F0F90D1DD003BB5A7 /* class_c_option_menu-members.html */,
+ 24A200600F90D1DD003BB5A7 /* class_c_option_menu.html */,
+ 24A200610F90D1DD003BB5A7 /* class_c_option_menu.png */,
+ 24A200620F90D1DD003BB5A7 /* class_c_option_menu_scheme-members.html */,
+ 24A200630F90D1DD003BB5A7 /* class_c_option_menu_scheme.html */,
+ 24A200640F90D1DD003BB5A7 /* class_c_option_menu_scheme.png */,
+ 24A200650F90D1DD003BB5A7 /* class_c_param_display-members.html */,
+ 24A200660F90D1DD003BB5A7 /* class_c_param_display.html */,
+ 24A200670F90D1DD003BB5A7 /* class_c_param_display.png */,
+ 24A200680F90D1DD003BB5A7 /* class_c_reference_counter-members.html */,
+ 24A200690F90D1DD003BB5A7 /* class_c_reference_counter.html */,
+ 24A2006A0F90D1DD003BB5A7 /* class_c_reference_counter.png */,
+ 24A2006B0F90D1DD003BB5A7 /* class_c_rocker_switch-members.html */,
+ 24A2006C0F90D1DD003BB5A7 /* class_c_rocker_switch.html */,
+ 24A2006D0F90D1DD003BB5A7 /* class_c_rocker_switch.png */,
+ 24A2006E0F90D1DD003BB5A7 /* class_c_scroll_container-members.html */,
+ 24A2006F0F90D1DD003BB5A7 /* class_c_scroll_container.html */,
+ 24A200700F90D1DD003BB5A7 /* class_c_scroll_container.png */,
+ 24A200710F90D1DD003BB5A7 /* class_c_scroll_view-members.html */,
+ 24A200720F90D1DD003BB5A7 /* class_c_scroll_view.html */,
+ 24A200730F90D1DD003BB5A7 /* class_c_scroll_view.png */,
+ 24A200740F90D1DD003BB5A7 /* class_c_scrollbar-members.html */,
+ 24A200750F90D1DD003BB5A7 /* class_c_scrollbar.html */,
+ 24A200760F90D1DD003BB5A7 /* class_c_scrollbar.png */,
+ 24A200770F90D1DD003BB5A7 /* class_c_slider-members.html */,
+ 24A200780F90D1DD003BB5A7 /* class_c_slider.html */,
+ 24A200790F90D1DD003BB5A7 /* class_c_slider.png */,
+ 24A2007A0F90D1DD003BB5A7 /* class_c_special_digit-members.html */,
+ 24A2007B0F90D1DD003BB5A7 /* class_c_special_digit.html */,
+ 24A2007C0F90D1DD003BB5A7 /* class_c_special_digit.png */,
+ 24A2007D0F90D1DD003BB5A7 /* class_c_splash_screen-members.html */,
+ 24A2007E0F90D1DD003BB5A7 /* class_c_splash_screen.html */,
+ 24A2007F0F90D1DD003BB5A7 /* class_c_splash_screen.png */,
+ 24A200800F90D1DD003BB5A7 /* class_c_splash_screen_view-members.html */,
+ 24A200810F90D1DD003BB5A7 /* class_c_splash_screen_view.html */,
+ 24A200820F90D1DD003BB5A7 /* class_c_splash_screen_view.png */,
+ 24A200830F90D1DD003BB5A7 /* class_c_tab_button-members.html */,
+ 24A200840F90D1DD003BB5A7 /* class_c_tab_button.html */,
+ 24A200850F90D1DD003BB5A7 /* class_c_tab_button.png */,
+ 24A200860F90D1DD003BB5A7 /* class_c_tab_child_view-members.html */,
+ 24A200870F90D1DD003BB5A7 /* class_c_tab_child_view.html */,
+ 24A200880F90D1DD003BB5A7 /* class_c_tab_child_view.png */,
+ 24A200890F90D1DD003BB5A7 /* class_c_tab_view-members.html */,
+ 24A2008A0F90D1DD003BB5A7 /* class_c_tab_view.html */,
+ 24A2008B0F90D1DD003BB5A7 /* class_c_tab_view.png */,
+ 24A2008C0F90D1DD003BB5A7 /* class_c_text_edit-members.html */,
+ 24A2008D0F90D1DD003BB5A7 /* class_c_text_edit.html */,
+ 24A2008E0F90D1DD003BB5A7 /* class_c_text_edit.png */,
+ 24A2008F0F90D1DD003BB5A7 /* class_c_text_label-members.html */,
+ 24A200900F90D1DD003BB5A7 /* class_c_text_label.html */,
+ 24A200910F90D1DD003BB5A7 /* class_c_text_label.png */,
+ 24A200920F90D1DD003BB5A7 /* class_c_vertical_slider-members.html */,
+ 24A200930F90D1DD003BB5A7 /* class_c_vertical_slider.html */,
+ 24A200940F90D1DD003BB5A7 /* class_c_vertical_slider.png */,
+ 24A200950F90D1DD003BB5A7 /* class_c_vertical_switch-members.html */,
+ 24A200960F90D1DD003BB5A7 /* class_c_vertical_switch.html */,
+ 24A200970F90D1DD003BB5A7 /* class_c_vertical_switch.png */,
+ 24A200980F90D1DD003BB5A7 /* class_c_view-members.html */,
+ 24A200990F90D1DD003BB5A7 /* class_c_view.html */,
+ 24A2009A0F90D1DD003BB5A7 /* class_c_view.png */,
+ 24A2009B0F90D1DD003BB5A7 /* class_c_view_container-members.html */,
+ 24A2009C0F90D1DD003BB5A7 /* class_c_view_container.html */,
+ 24A2009D0F90D1DD003BB5A7 /* class_c_view_container.png */,
+ 24A2009E0F90D1DD003BB5A7 /* class_c_vu_meter-members.html */,
+ 24A2009F0F90D1DD003BB5A7 /* class_c_vu_meter.html */,
+ 24A200A00F90D1DD003BB5A7 /* class_c_vu_meter.png */,
+ 24A200A10F90D1DD003BB5A7 /* class_i_scrollbar_drawer-members.html */,
+ 24A200A20F90D1DD003BB5A7 /* class_i_scrollbar_drawer.html */,
+ 24A200A30F90D1DD003BB5A7 /* class_plugin_g_u_i_editor-members.html */,
+ 24A200A40F90D1DD003BB5A7 /* class_plugin_g_u_i_editor.html */,
+ 24A200A50F90D1DD003BB5A7 /* cscrollview_8cpp.html */,
+ 24A200A60F90D1DD003BB5A7 /* cscrollview_8h.html */,
+ 24A200A70F90D1DD003BB5A7 /* ctabview_8cpp.html */,
+ 24A200A80F90D1DD003BB5A7 /* ctabview_8h.html */,
+ 24A200A90F90D1DD003BB5A7 /* deprecated.html */,
+ 24A200AA0F90D1DD003BB5A7 /* doc_8h.html */,
+ 24A200AB0F90D1DD003BB5A7 /* doxygen.css */,
+ 24A200AC0F90D1DD003BB5A7 /* doxygen.png */,
+ 24A200AD0F90D1DD003BB5A7 /* files.html */,
+ 24A200AE0F90D1DD003BB5A7 /* ftv2blank.png */,
+ 24A200AF0F90D1DD003BB5A7 /* ftv2doc.png */,
+ 24A200B00F90D1DD003BB5A7 /* ftv2folderclosed.png */,
+ 24A200B10F90D1DE003BB5A7 /* ftv2folderopen.png */,
+ 24A200B20F90D1DE003BB5A7 /* ftv2lastnode.png */,
+ 24A200B30F90D1DE003BB5A7 /* ftv2link.png */,
+ 24A200B40F90D1DE003BB5A7 /* ftv2mlastnode.png */,
+ 24A200B50F90D1DE003BB5A7 /* ftv2mnode.png */,
+ 24A200B60F90D1DE003BB5A7 /* ftv2node.png */,
+ 24A200B70F90D1DE003BB5A7 /* ftv2plastnode.png */,
+ 24A200B80F90D1DE003BB5A7 /* ftv2pnode.png */,
+ 24A200B90F90D1DE003BB5A7 /* ftv2vertline.png */,
+ 24A200BA0F90D1DE003BB5A7 /* functions.html */,
+ 24A200BB0F90D1DE003BB5A7 /* functions_0x62.html */,
+ 24A200BC0F90D1DE003BB5A7 /* functions_0x63.html */,
+ 24A200BD0F90D1DE003BB5A7 /* functions_0x64.html */,
+ 24A200BE0F90D1DE003BB5A7 /* functions_0x65.html */,
+ 24A200BF0F90D1DE003BB5A7 /* functions_0x66.html */,
+ 24A200C00F90D1DE003BB5A7 /* functions_0x67.html */,
+ 24A200C10F90D1DE003BB5A7 /* functions_0x68.html */,
+ 24A200C20F90D1DE003BB5A7 /* functions_0x69.html */,
+ 24A200C30F90D1DE003BB5A7 /* functions_0x6b.html */,
+ 24A200C40F90D1DE003BB5A7 /* functions_0x6c.html */,
+ 24A200C50F90D1DE003BB5A7 /* functions_0x6d.html */,
+ 24A200C60F90D1DE003BB5A7 /* functions_0x6e.html */,
+ 24A200C70F90D1DE003BB5A7 /* functions_0x6f.html */,
+ 24A200C80F90D1DE003BB5A7 /* functions_0x70.html */,
+ 24A200C90F90D1DE003BB5A7 /* functions_0x72.html */,
+ 24A200CA0F90D1DE003BB5A7 /* functions_0x73.html */,
+ 24A200CB0F90D1DE003BB5A7 /* functions_0x74.html */,
+ 24A200CC0F90D1DE003BB5A7 /* functions_0x75.html */,
+ 24A200CD0F90D1DE003BB5A7 /* functions_0x76.html */,
+ 24A200CE0F90D1DE003BB5A7 /* functions_0x77.html */,
+ 24A200CF0F90D1DE003BB5A7 /* functions_0x78.html */,
+ 24A200D00F90D1DE003BB5A7 /* functions_0x79.html */,
+ 24A200D10F90D1DE003BB5A7 /* functions_0x7a.html */,
+ 24A200D20F90D1DE003BB5A7 /* functions_0x7e.html */,
+ 24A200D30F90D1DE003BB5A7 /* functions_eval.html */,
+ 24A200D40F90D1DE003BB5A7 /* functions_func.html */,
+ 24A200D50F90D1DE003BB5A7 /* functions_func_0x62.html */,
+ 24A200D60F90D1DE003BB5A7 /* functions_func_0x63.html */,
+ 24A200D70F90D1DE003BB5A7 /* functions_func_0x64.html */,
+ 24A200D80F90D1DE003BB5A7 /* functions_func_0x65.html */,
+ 24A200D90F90D1DE003BB5A7 /* functions_func_0x66.html */,
+ 24A200DA0F90D1DE003BB5A7 /* functions_func_0x67.html */,
+ 24A200DB0F90D1DE003BB5A7 /* functions_func_0x68.html */,
+ 24A200DC0F90D1DE003BB5A7 /* functions_func_0x69.html */,
+ 24A200DD0F90D1DE003BB5A7 /* functions_func_0x6c.html */,
+ 24A200DE0F90D1DE003BB5A7 /* functions_func_0x6d.html */,
+ 24A200DF0F90D1DE003BB5A7 /* functions_func_0x6e.html */,
+ 24A200E00F90D1DE003BB5A7 /* functions_func_0x6f.html */,
+ 24A200E10F90D1DE003BB5A7 /* functions_func_0x70.html */,
+ 24A200E20F90D1DE003BB5A7 /* functions_func_0x72.html */,
+ 24A200E30F90D1DE003BB5A7 /* functions_func_0x73.html */,
+ 24A200E40F90D1DE003BB5A7 /* functions_func_0x74.html */,
+ 24A200E50F90D1DE003BB5A7 /* functions_func_0x75.html */,
+ 24A200E60F90D1DE003BB5A7 /* functions_func_0x76.html */,
+ 24A200E70F90D1DE003BB5A7 /* functions_func_0x77.html */,
+ 24A200E80F90D1DE003BB5A7 /* functions_func_0x7e.html */,
+ 24A200E90F90D1DE003BB5A7 /* functions_rela.html */,
+ 24A200EA0F90D1DE003BB5A7 /* functions_vars.html */,
+ 24A200EB0F90D1DE003BB5A7 /* functions_vars_0x62.html */,
+ 24A200EC0F90D1DE003BB5A7 /* functions_vars_0x63.html */,
+ 24A200ED0F90D1DE003BB5A7 /* functions_vars_0x64.html */,
+ 24A200EE0F90D1DE003BB5A7 /* functions_vars_0x65.html */,
+ 24A200EF0F90D1DE003BB5A7 /* functions_vars_0x66.html */,
+ 24A200F00F90D1DE003BB5A7 /* functions_vars_0x67.html */,
+ 24A200F10F90D1DE003BB5A7 /* functions_vars_0x68.html */,
+ 24A200F20F90D1DE003BB5A7 /* functions_vars_0x69.html */,
+ 24A200F30F90D1DE003BB5A7 /* functions_vars_0x6b.html */,
+ 24A200F40F90D1DE003BB5A7 /* functions_vars_0x6c.html */,
+ 24A200F50F90D1DE003BB5A7 /* functions_vars_0x6d.html */,
+ 24A200F60F90D1DE003BB5A7 /* functions_vars_0x6e.html */,
+ 24A200F70F90D1DE003BB5A7 /* functions_vars_0x6f.html */,
+ 24A200F80F90D1DE003BB5A7 /* functions_vars_0x70.html */,
+ 24A200F90F90D1DE003BB5A7 /* functions_vars_0x72.html */,
+ 24A200FA0F90D1DE003BB5A7 /* functions_vars_0x73.html */,
+ 24A200FB0F90D1DE003BB5A7 /* functions_vars_0x74.html */,
+ 24A200FC0F90D1DE003BB5A7 /* functions_vars_0x75.html */,
+ 24A200FD0F90D1DE003BB5A7 /* functions_vars_0x76.html */,
+ 24A200FE0F90D1DE003BB5A7 /* functions_vars_0x77.html */,
+ 24A200FF0F90D1DE003BB5A7 /* functions_vars_0x78.html */,
+ 24A201000F90D1DE003BB5A7 /* functions_vars_0x79.html */,
+ 24A201010F90D1DE003BB5A7 /* functions_vars_0x7a.html */,
+ 24A201020F90D1DE003BB5A7 /* globals.html */,
+ 24A201030F90D1DE003BB5A7 /* globals_0x61.html */,
+ 24A201040F90D1DE003BB5A7 /* globals_0x62.html */,
+ 24A201050F90D1DE003BB5A7 /* globals_0x63.html */,
+ 24A201060F90D1DE003BB5A7 /* globals_0x65.html */,
+ 24A201070F90D1DE003BB5A7 /* globals_0x66.html */,
+ 24A201080F90D1DE003BB5A7 /* globals_0x67.html */,
+ 24A201090F90D1DE003BB5A7 /* globals_0x6b.html */,
+ 24A2010A0F90D1DE003BB5A7 /* globals_0x6d.html */,
+ 24A2010B0F90D1DE003BB5A7 /* globals_0x6e.html */,
+ 24A2010C0F90D1DE003BB5A7 /* globals_0x6f.html */,
+ 24A2010D0F90D1DE003BB5A7 /* globals_0x71.html */,
+ 24A2010E0F90D1DE003BB5A7 /* globals_0x72.html */,
+ 24A2010F0F90D1DE003BB5A7 /* globals_0x73.html */,
+ 24A201100F90D1DE003BB5A7 /* globals_0x74.html */,
+ 24A201110F90D1DE003BB5A7 /* globals_0x75.html */,
+ 24A201120F90D1DE003BB5A7 /* globals_0x76.html */,
+ 24A201130F90D1DE003BB5A7 /* globals_0x77.html */,
+ 24A201140F90D1DE003BB5A7 /* globals_defs.html */,
+ 24A201150F90D1DE003BB5A7 /* globals_enum.html */,
+ 24A201160F90D1DE003BB5A7 /* globals_eval.html */,
+ 24A201170F90D1DE003BB5A7 /* globals_type.html */,
+ 24A201180F90D1DE003BB5A7 /* globals_vars.html */,
+ 24A201190F90D1DE003BB5A7 /* hierarchy.html */,
+ 24A2011A0F90D1DE003BB5A7 /* index.html */,
+ 24A2011B0F90D1DE003BB5A7 /* intro.html */,
+ 24A2011C0F90D1DE003BB5A7 /* license.html */,
+ 24A2011D0F90D1DE003BB5A7 /* maceditor.html */,
+ 24A2011E0F90D1DE003BB5A7 /* main.html */,
+ 24A2011F0F90D1DE003BB5A7 /* others.html */,
+ 24A201200F90D1DE003BB5A7 /* pages.html */,
+ 24A201210F90D1DE003BB5A7 /* plugguieditor_8cpp.html */,
+ 24A201220F90D1DE003BB5A7 /* plugguieditor_8h.html */,
+ 24A201230F90D1DE003BB5A7 /* sequences.html */,
+ 24A201240F90D1DE003BB5A7 /* struct_c_color-members.html */,
+ 24A201250F90D1DE003BB5A7 /* struct_c_color.html */,
+ 24A201260F90D1DE003BB5A7 /* struct_c_point-members.html */,
+ 24A201270F90D1DE003BB5A7 /* struct_c_point.html */,
+ 24A201280F90D1DE003BB5A7 /* struct_c_rect-members.html */,
+ 24A201290F90D1DE003BB5A7 /* struct_c_rect.html */,
+ 24A2012A0F90D1DE003BB5A7 /* struct_e_rect-members.html */,
+ 24A2012B0F90D1DE003BB5A7 /* struct_e_rect.html */,
+ 24A2012C0F90D1DE003BB5A7 /* struct_vst_file_select-members.html */,
+ 24A2012D0F90D1DE003BB5A7 /* struct_vst_file_select.html */,
+ 24A2012E0F90D1DE003BB5A7 /* struct_vst_file_type-members.html */,
+ 24A2012F0F90D1DE003BB5A7 /* struct_vst_file_type.html */,
+ 24A201300F90D1DE003BB5A7 /* struct_vst_key_code-members.html */,
+ 24A201310F90D1DE003BB5A7 /* struct_vst_key_code.html */,
+ 24A201320F90D1DE003BB5A7 /* tab_b.gif */,
+ 24A201330F90D1DE003BB5A7 /* tab_l.gif */,
+ 24A201340F90D1DE003BB5A7 /* tab_r.gif */,
+ 24A201350F90D1DE003BB5A7 /* tabs.css */,
+ 24A201360F90D1DE003BB5A7 /* thanks.html */,
+ 24A201370F90D1DE003BB5A7 /* tree.html */,
+ 24A201380F90D1DE003BB5A7 /* vstcontrols_8cpp.html */,
+ 24A201390F90D1DE003BB5A7 /* vstcontrols_8h.html */,
+ 24A2013A0F90D1DE003BB5A7 /* vstgui_8cpp.html */,
+ 24A2013B0F90D1DE003BB5A7 /* vstgui_8h.html */,
+ 24A2013C0F90D1DE003BB5A7 /* vstkeycode_8h.html */,
+ 24A2013D0F90D1DE003BB5A7 /* vstoffline.html */,
+ 24A2013E0F90D1DE003BB5A7 /* vstparamstruct.html */,
+ 24A2013F0F90D1DE003BB5A7 /* vstplugscarbon_8h.html */,
+ 24A201400F90D1DE003BB5A7 /* vstplugsmac_8h.html */,
+ 24A201410F90D1DE003BB5A7 /* vstplugsmacho_8h.html */,
+ 24A201420F90D1DE003BB5A7 /* vstplugsquartz_8h.html */,
+ 24A201430F90D1DE003BB5A7 /* whatsnew.html */,
+ );
+ name = html;
+ path = /vstsdk2.4/vstgui.sf/vstgui/Documentation/html;
+ sourceTree = "<absolute>";
+ };
+ 24A203CE0F90D272003BB5A7 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 24A203D70F90D272003BB5A7 /* again.vst */,
+ 24A203D90F90D272003BB5A7 /* adelay.vst */,
+ 24A203DB0F90D272003BB5A7 /* vstxsynth.vst */,
+ 24A203DD0F90D272003BB5A7 /* surrounddelay.vst */,
+ 24A203DF0F90D272003BB5A7 /* minihost.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 24A203E00F90D272003BB5A7 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 24A203E50F90D272003BB5A7 /* drawtest.component */,
+ 24A203E70F90D272003BB5A7 /* drawtest.vst */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 24A203E80F90D272003BB5A7 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 24A203ED0F90D272003BB5A7 /* drawtest.component */,
+ 24A203EF0F90D272003BB5A7 /* drawtest.vst */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 24A2FEBB0F90D1DB003BB5A7 /* vstsdk2.4 */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEBC0F90D1DC003BB5A7 /* artwork */,
+ 24A2FEC20F90D1DC003BB5A7 /* bin */,
+ 24A2FED80F90D1DC003BB5A7 /* doc */,
+ 24A2FF8E0F90D1DD003BB5A7 /* index.html */,
+ 24A2FF8F0F90D1DD003BB5A7 /* pluginterfaces */,
+ 24A2FF940F90D1DD003BB5A7 /* public.sdk */,
+ 24A2FFDE0F90D1DD003BB5A7 /* vstgui.sf */,
+ );
+ name = vstsdk2.4;
+ path = /vstsdk2.4;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEBC0F90D1DC003BB5A7 /* artwork */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEBD0F90D1DC003BB5A7 /* Thumbs.db */,
+ 24A2FEBE0F90D1DC003BB5A7 /* VST_Logo_Usage_Guideline.pdf */,
+ 24A2FEBF0F90D1DC003BB5A7 /* VSTLogoAlpha.png */,
+ 24A2FEC00F90D1DC003BB5A7 /* VSTLogoBlack.jpg */,
+ 24A2FEC10F90D1DC003BB5A7 /* VSTLogoWhite.jpg */,
+ );
+ name = artwork;
+ path = /vstsdk2.4/artwork;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEC20F90D1DC003BB5A7 /* bin */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEC30F90D1DC003BB5A7 /* mac */,
+ 24A2FED50F90D1DC003BB5A7 /* win */,
+ );
+ name = bin;
+ path = /vstsdk2.4/bin;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEC30F90D1DC003BB5A7 /* mac */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEC40F90D1DC003BB5A7 /* VSTMonitor.vst */,
+ 24A2FED40F90D1DC003BB5A7 /* VSTParamTool.app */,
+ );
+ name = mac;
+ path = /vstsdk2.4/bin/mac;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEC40F90D1DC003BB5A7 /* VSTMonitor.vst */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEC50F90D1DC003BB5A7 /* Contents */,
+ );
+ name = VSTMonitor.vst;
+ path = /vstsdk2.4/bin/mac/VSTMonitor.vst;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEC50F90D1DC003BB5A7 /* Contents */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEC60F90D1DC003BB5A7 /* Info.plist */,
+ 24A2FEC70F90D1DC003BB5A7 /* MacOS */,
+ 24A2FEC90F90D1DC003BB5A7 /* PkgInfo */,
+ 24A2FECA0F90D1DC003BB5A7 /* Resources */,
+ );
+ name = Contents;
+ path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEC70F90D1DC003BB5A7 /* MacOS */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEC80F90D1DC003BB5A7 /* VSTMonitor */,
+ );
+ name = MacOS;
+ path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents/MacOS;
+ sourceTree = "<absolute>";
+ };
+ 24A2FECA0F90D1DC003BB5A7 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FECB0F90D1DC003BB5A7 /* bmp50000.bmp */,
+ 24A2FECC0F90D1DC003BB5A7 /* bmp50001.bmp */,
+ 24A2FECD0F90D1DC003BB5A7 /* bmp50002.bmp */,
+ 24A2FECE0F90D1DC003BB5A7 /* bmp50003.bmp */,
+ 24A2FECF0F90D1DC003BB5A7 /* bmp50004.bmp */,
+ 24A2FED00F90D1DC003BB5A7 /* bmp50005.bmp */,
+ 24A2FED10F90D1DC003BB5A7 /* bmp50006.bmp */,
+ 24A2FED20F90D1DC003BB5A7 /* bmp50007.bmp */,
+ 24A2FED30F90D1DC003BB5A7 /* bmp50008.bmp */,
+ );
+ name = Resources;
+ path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents/Resources;
+ sourceTree = "<absolute>";
+ };
+ 24A2FED50F90D1DC003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FED60F90D1DC003BB5A7 /* vstmonitor.dll */,
+ 24A2FED70F90D1DC003BB5A7 /* vstparamtool.exe */,
+ );
+ name = win;
+ path = /vstsdk2.4/bin/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FED80F90D1DC003BB5A7 /* doc */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FED90F90D1DC003BB5A7 /* gfx */,
+ 24A2FEDE0F90D1DC003BB5A7 /* html */,
+ 24A2FF8A0F90D1DD003BB5A7 /* sdk.menu.html */,
+ 24A2FF8B0F90D1DD003BB5A7 /* sdk.overview.html */,
+ 24A2FF8C0F90D1DD003BB5A7 /* sdkdoc.css */,
+ 24A2FF8D0F90D1DD003BB5A7 /* VST Licensing Agreement.rtf */,
+ );
+ name = doc;
+ path = /vstsdk2.4/doc;
+ sourceTree = "<absolute>";
+ };
+ 24A2FED90F90D1DC003BB5A7 /* gfx */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEDA0F90D1DC003BB5A7 /* folder.gif */,
+ 24A2FEDB0F90D1DC003BB5A7 /* mac.gif */,
+ 24A2FEDC0F90D1DC003BB5A7 /* vstpluglogo_small.jpg */,
+ 24A2FEDD0F90D1DC003BB5A7 /* win.gif */,
+ );
+ name = gfx;
+ path = /vstsdk2.4/doc/gfx;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEDE0F90D1DC003BB5A7 /* html */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEDF0F90D1DC003BB5A7 /* aeffect_8h.html */,
+ 24A2FEE00F90D1DC003BB5A7 /* aeffectx_8h.html */,
+ 24A2FEE10F90D1DC003BB5A7 /* aeffeditor_8h.html */,
+ 24A2FEE20F90D1DC003BB5A7 /* annotated.html */,
+ 24A2FEE30F90D1DC003BB5A7 /* audioeffect_8cpp.html */,
+ 24A2FEE40F90D1DC003BB5A7 /* audioeffect_8h.html */,
+ 24A2FEE50F90D1DC003BB5A7 /* audioeffectx_8cpp.html */,
+ 24A2FEE60F90D1DC003BB5A7 /* audioeffectx_8h.html */,
+ 24A2FEE70F90D1DC003BB5A7 /* Blocksizechange.gif */,
+ 24A2FEE80F90D1DC003BB5A7 /* class_a_eff_editor-members.html */,
+ 24A2FEE90F90D1DC003BB5A7 /* class_a_eff_editor.html */,
+ 24A2FEEA0F90D1DC003BB5A7 /* class_audio_effect-members.html */,
+ 24A2FEEB0F90D1DC003BB5A7 /* class_audio_effect.html */,
+ 24A2FEEC0F90D1DC003BB5A7 /* class_audio_effect.png */,
+ 24A2FEED0F90D1DC003BB5A7 /* class_audio_effect_x-members.html */,
+ 24A2FEEE0F90D1DC003BB5A7 /* class_audio_effect_x.html */,
+ 24A2FEEF0F90D1DC003BB5A7 /* class_audio_effect_x.png */,
+ 24A2FEF00F90D1DC003BB5A7 /* ControlChanged.gif */,
+ 24A2FEF10F90D1DC003BB5A7 /* deprecated.html */,
+ 24A2FEF20F90D1DC003BB5A7 /* dir_2d3252dd12c84c66c1d25b26bb45a1f5.html */,
+ 24A2FEF30F90D1DC003BB5A7 /* dir_77c628dfee72e555f82d5ef53b733f38.html */,
+ 24A2FEF40F90D1DC003BB5A7 /* dir_f81105d3b854bea570aaf3bae5cb64c1.html */,
+ 24A2FEF50F90D1DC003BB5A7 /* dir_fa0454ab79b4262333bf837ea3d765e9.html */,
+ 24A2FEF60F90D1DC003BB5A7 /* dirs.html */,
+ 24A2FEF70F90D1DC003BB5A7 /* doc_8h.html */,
+ 24A2FEF80F90D1DC003BB5A7 /* doxygen.css */,
+ 24A2FEF90F90D1DC003BB5A7 /* doxygen.png */,
+ 24A2FEFA0F90D1DC003BB5A7 /* files.html */,
+ 24A2FEFB0F90D1DC003BB5A7 /* ftv2blank.png */,
+ 24A2FEFC0F90D1DC003BB5A7 /* ftv2doc.png */,
+ 24A2FEFD0F90D1DC003BB5A7 /* ftv2folderclosed.png */,
+ 24A2FEFE0F90D1DC003BB5A7 /* ftv2folderopen.png */,
+ 24A2FEFF0F90D1DC003BB5A7 /* ftv2lastnode.png */,
+ 24A2FF000F90D1DC003BB5A7 /* ftv2link.png */,
+ 24A2FF010F90D1DC003BB5A7 /* ftv2mlastnode.png */,
+ 24A2FF020F90D1DC003BB5A7 /* ftv2mnode.png */,
+ 24A2FF030F90D1DC003BB5A7 /* ftv2node.png */,
+ 24A2FF040F90D1DC003BB5A7 /* ftv2plastnode.png */,
+ 24A2FF050F90D1DC003BB5A7 /* ftv2pnode.png */,
+ 24A2FF060F90D1DC003BB5A7 /* ftv2vertline.png */,
+ 24A2FF070F90D1DC003BB5A7 /* functions.html */,
+ 24A2FF080F90D1DC003BB5A7 /* functions_0x62.html */,
+ 24A2FF090F90D1DC003BB5A7 /* functions_0x63.html */,
+ 24A2FF0A0F90D1DC003BB5A7 /* functions_0x64.html */,
+ 24A2FF0B0F90D1DC003BB5A7 /* functions_0x65.html */,
+ 24A2FF0C0F90D1DC003BB5A7 /* functions_0x66.html */,
+ 24A2FF0D0F90D1DC003BB5A7 /* functions_0x67.html */,
+ 24A2FF0E0F90D1DC003BB5A7 /* functions_0x68.html */,
+ 24A2FF0F0F90D1DC003BB5A7 /* functions_0x69.html */,
+ 24A2FF100F90D1DC003BB5A7 /* functions_0x6b.html */,
+ 24A2FF110F90D1DC003BB5A7 /* functions_0x6c.html */,
+ 24A2FF120F90D1DC003BB5A7 /* functions_0x6d.html */,
+ 24A2FF130F90D1DC003BB5A7 /* functions_0x6e.html */,
+ 24A2FF140F90D1DC003BB5A7 /* functions_0x6f.html */,
+ 24A2FF150F90D1DC003BB5A7 /* functions_0x70.html */,
+ 24A2FF160F90D1DC003BB5A7 /* functions_0x72.html */,
+ 24A2FF170F90D1DC003BB5A7 /* functions_0x73.html */,
+ 24A2FF180F90D1DC003BB5A7 /* functions_0x74.html */,
+ 24A2FF190F90D1DC003BB5A7 /* functions_0x75.html */,
+ 24A2FF1A0F90D1DC003BB5A7 /* functions_0x76.html */,
+ 24A2FF1B0F90D1DC003BB5A7 /* functions_0x77.html */,
+ 24A2FF1C0F90D1DC003BB5A7 /* functions_0x78.html */,
+ 24A2FF1D0F90D1DC003BB5A7 /* functions_0x79.html */,
+ 24A2FF1E0F90D1DC003BB5A7 /* functions_0x7e.html */,
+ 24A2FF1F0F90D1DC003BB5A7 /* functions_func.html */,
+ 24A2FF200F90D1DC003BB5A7 /* functions_vars.html */,
+ 24A2FF210F90D1DC003BB5A7 /* globals.html */,
+ 24A2FF220F90D1DC003BB5A7 /* globals_0x62.html */,
+ 24A2FF230F90D1DC003BB5A7 /* globals_0x63.html */,
+ 24A2FF240F90D1DC003BB5A7 /* globals_0x64.html */,
+ 24A2FF250F90D1DC003BB5A7 /* globals_0x65.html */,
+ 24A2FF260F90D1DC003BB5A7 /* globals_0x66.html */,
+ 24A2FF270F90D1DC003BB5A7 /* globals_0x6b.html */,
+ 24A2FF280F90D1DC003BB5A7 /* globals_0x6d.html */,
+ 24A2FF290F90D1DC003BB5A7 /* globals_0x74.html */,
+ 24A2FF2A0F90D1DC003BB5A7 /* globals_0x76.html */,
+ 24A2FF2B0F90D1DC003BB5A7 /* globals_defs.html */,
+ 24A2FF2C0F90D1DC003BB5A7 /* globals_enum.html */,
+ 24A2FF2D0F90D1DC003BB5A7 /* globals_eval.html */,
+ 24A2FF2E0F90D1DC003BB5A7 /* globals_eval_0x65.html */,
+ 24A2FF2F0F90D1DC003BB5A7 /* globals_eval_0x6b.html */,
+ 24A2FF300F90D1DC003BB5A7 /* globals_eval_0x6d.html */,
+ 24A2FF310F90D1DC003BB5A7 /* globals_eval_0x76.html */,
+ 24A2FF320F90D1DC003BB5A7 /* globals_func.html */,
+ 24A2FF330F90D1DC003BB5A7 /* globals_type.html */,
+ 24A2FF340F90D1DC003BB5A7 /* globals_vars.html */,
+ 24A2FF350F90D1DC003BB5A7 /* hierarchy.html */,
+ 24A2FF360F90D1DC003BB5A7 /* history.html */,
+ 24A2FF370F90D1DC003BB5A7 /* index.html */,
+ 24A2FF380F90D1DC003BB5A7 /* Initialisation.gif */,
+ 24A2FF390F90D1DC003BB5A7 /* intro.html */,
+ 24A2FF3A0F90D1DC003BB5A7 /* IOchange.gif */,
+ 24A2FF3B0F90D1DC003BB5A7 /* license.html */,
+ 24A2FF3C0F90D1DC003BB5A7 /* maceditor.html */,
+ 24A2FF3D0F90D1DC003BB5A7 /* main.html */,
+ 24A2FF3E0F90D1DC003BB5A7 /* namespace_host_can_dos.html */,
+ 24A2FF3F0F90D1DC003BB5A7 /* namespace_plug_can_dos.html */,
+ 24A2FF400F90D1DC003BB5A7 /* namespacemembers.html */,
+ 24A2FF410F90D1DC003BB5A7 /* namespacemembers_vars.html */,
+ 24A2FF420F90D1DC003BB5A7 /* namespaces.html */,
+ 24A2FF430F90D1DC003BB5A7 /* Offlineprocessing.gif */,
+ 24A2FF440F90D1DC003BB5A7 /* others.html */,
+ 24A2FF450F90D1DC003BB5A7 /* pages.html */,
+ 24A2FF460F90D1DC003BB5A7 /* Sampleratechange.gif */,
+ 24A2FF470F90D1DC003BB5A7 /* sequences.html */,
+ 24A2FF480F90D1DC003BB5A7 /* SpeakerarrangementnegotiationforVSTfx.gif */,
+ 24A2FF490F90D1DC003BB5A7 /* struct_a_effect-members.html */,
+ 24A2FF4A0F90D1DC003BB5A7 /* struct_a_effect.html */,
+ 24A2FF4B0F90D1DC003BB5A7 /* struct_e_rect-members.html */,
+ 24A2FF4C0F90D1DC003BB5A7 /* struct_e_rect.html */,
+ 24A2FF4D0F90D1DC003BB5A7 /* struct_midi_key_name-members.html */,
+ 24A2FF4E0F90D1DC003BB5A7 /* struct_midi_key_name.html */,
+ 24A2FF4F0F90D1DC003BB5A7 /* struct_midi_program_category-members.html */,
+ 24A2FF500F90D1DC003BB5A7 /* struct_midi_program_category.html */,
+ 24A2FF510F90D1DC003BB5A7 /* struct_midi_program_name-members.html */,
+ 24A2FF520F90D1DC003BB5A7 /* struct_midi_program_name.html */,
+ 24A2FF530F90D1DC003BB5A7 /* struct_vst_audio_file-members.html */,
+ 24A2FF540F90D1DC003BB5A7 /* struct_vst_audio_file.html */,
+ 24A2FF550F90D1DC003BB5A7 /* struct_vst_audio_file_marker-members.html */,
+ 24A2FF560F90D1DC003BB5A7 /* struct_vst_audio_file_marker.html */,
+ 24A2FF570F90D1DC003BB5A7 /* struct_vst_event-members.html */,
+ 24A2FF580F90D1DC003BB5A7 /* struct_vst_event.html */,
+ 24A2FF590F90D1DD003BB5A7 /* struct_vst_events-members.html */,
+ 24A2FF5A0F90D1DD003BB5A7 /* struct_vst_events.html */,
+ 24A2FF5B0F90D1DD003BB5A7 /* struct_vst_file_select-members.html */,
+ 24A2FF5C0F90D1DD003BB5A7 /* struct_vst_file_select.html */,
+ 24A2FF5D0F90D1DD003BB5A7 /* struct_vst_file_type-members.html */,
+ 24A2FF5E0F90D1DD003BB5A7 /* struct_vst_file_type.html */,
+ 24A2FF5F0F90D1DD003BB5A7 /* struct_vst_key_code-members.html */,
+ 24A2FF600F90D1DD003BB5A7 /* struct_vst_key_code.html */,
+ 24A2FF610F90D1DD003BB5A7 /* struct_vst_midi_event-members.html */,
+ 24A2FF620F90D1DD003BB5A7 /* struct_vst_midi_event.html */,
+ 24A2FF630F90D1DD003BB5A7 /* struct_vst_midi_sysex_event-members.html */,
+ 24A2FF640F90D1DD003BB5A7 /* struct_vst_midi_sysex_event.html */,
+ 24A2FF650F90D1DD003BB5A7 /* struct_vst_offline_task-members.html */,
+ 24A2FF660F90D1DD003BB5A7 /* struct_vst_offline_task.html */,
+ 24A2FF670F90D1DD003BB5A7 /* struct_vst_parameter_properties-members.html */,
+ 24A2FF680F90D1DD003BB5A7 /* struct_vst_parameter_properties.html */,
+ 24A2FF690F90D1DD003BB5A7 /* struct_vst_patch_chunk_info-members.html */,
+ 24A2FF6A0F90D1DD003BB5A7 /* struct_vst_patch_chunk_info.html */,
+ 24A2FF6B0F90D1DD003BB5A7 /* struct_vst_pin_properties-members.html */,
+ 24A2FF6C0F90D1DD003BB5A7 /* struct_vst_pin_properties.html */,
+ 24A2FF6D0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement-members.html */,
+ 24A2FF6E0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement.html */,
+ 24A2FF6F0F90D1DD003BB5A7 /* struct_vst_speaker_properties-members.html */,
+ 24A2FF700F90D1DD003BB5A7 /* struct_vst_speaker_properties.html */,
+ 24A2FF710F90D1DD003BB5A7 /* struct_vst_time_info-members.html */,
+ 24A2FF720F90D1DD003BB5A7 /* struct_vst_time_info.html */,
+ 24A2FF730F90D1DD003BB5A7 /* struct_vst_variable_io-members.html */,
+ 24A2FF740F90D1DD003BB5A7 /* struct_vst_variable_io.html */,
+ 24A2FF750F90D1DD003BB5A7 /* struct_vst_window-members.html */,
+ 24A2FF760F90D1DD003BB5A7 /* struct_vst_window.html */,
+ 24A2FF770F90D1DD003BB5A7 /* structfx_bank-members.html */,
+ 24A2FF780F90D1DD003BB5A7 /* structfx_bank.html */,
+ 24A2FF790F90D1DD003BB5A7 /* structfx_program-members.html */,
+ 24A2FF7A0F90D1DD003BB5A7 /* structfx_program.html */,
+ 24A2FF7B0F90D1DD003BB5A7 /* tab_b.gif */,
+ 24A2FF7C0F90D1DD003BB5A7 /* tab_l.gif */,
+ 24A2FF7D0F90D1DD003BB5A7 /* tab_r.gif */,
+ 24A2FF7E0F90D1DD003BB5A7 /* tabs.css */,
+ 24A2FF7F0F90D1DD003BB5A7 /* Termination.gif */,
+ 24A2FF800F90D1DD003BB5A7 /* thanks.html */,
+ 24A2FF810F90D1DD003BB5A7 /* tree.html */,
+ 24A2FF820F90D1DD003BB5A7 /* TurnOff.gif */,
+ 24A2FF830F90D1DD003BB5A7 /* TurnOn.gif */,
+ 24A2FF840F90D1DD003BB5A7 /* vstfxstore_8h.html */,
+ 24A2FF850F90D1DD003BB5A7 /* vstoffline.html */,
+ 24A2FF860F90D1DD003BB5A7 /* vstparamstruct.html */,
+ 24A2FF870F90D1DD003BB5A7 /* vstpluglogo.jpg */,
+ 24A2FF880F90D1DD003BB5A7 /* vstplugmain_8cpp.html */,
+ 24A2FF890F90D1DD003BB5A7 /* whatsnew.html */,
+ );
+ name = html;
+ path = /vstsdk2.4/doc/html;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF8F0F90D1DD003BB5A7 /* pluginterfaces */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF900F90D1DD003BB5A7 /* vst2.x */,
+ );
+ name = pluginterfaces;
+ path = /vstsdk2.4/pluginterfaces;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF900F90D1DD003BB5A7 /* vst2.x */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF910F90D1DD003BB5A7 /* aeffect.h */,
+ 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */,
+ 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */,
+ );
+ name = vst2.x;
+ path = /vstsdk2.4/pluginterfaces/vst2.x;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF940F90D1DD003BB5A7 /* public.sdk */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF950F90D1DD003BB5A7 /* samples */,
+ 24A2FFD60F90D1DD003BB5A7 /* source */,
+ );
+ name = public.sdk;
+ path = /vstsdk2.4/public.sdk;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF950F90D1DD003BB5A7 /* samples */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF960F90D1DD003BB5A7 /* vst2.x */,
+ );
+ name = samples;
+ path = /vstsdk2.4/public.sdk/samples;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF960F90D1DD003BB5A7 /* vst2.x */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF970F90D1DD003BB5A7 /* adelay */,
+ 24A2FFA80F90D1DD003BB5A7 /* again */,
+ 24A2FFAE0F90D1DD003BB5A7 /* mac */,
+ 24A2FFB40F90D1DD003BB5A7 /* minihost */,
+ 24A2FFBA0F90D1DD003BB5A7 /* vstxsynth */,
+ 24A2FFC50F90D1DD003BB5A7 /* win */,
+ 24A2FFC80F90D1DD003BB5A7 /* win.vc2003 */,
+ 24A2FFCF0F90D1DD003BB5A7 /* win.vc6 */,
+ );
+ name = vst2.x;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF970F90D1DD003BB5A7 /* adelay */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF980F90D1DD003BB5A7 /* adelay.cpp */,
+ 24A2FF990F90D1DD003BB5A7 /* adelay.h */,
+ 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */,
+ 24A2FF9B0F90D1DD003BB5A7 /* editor */,
+ 24A2FFA30F90D1DD003BB5A7 /* surrounddelay.cpp */,
+ 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */,
+ 24A2FFA50F90D1DD003BB5A7 /* win */,
+ );
+ name = adelay;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF9B0F90D1DD003BB5A7 /* editor */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF9C0F90D1DD003BB5A7 /* resources */,
+ 24A2FFA10F90D1DD003BB5A7 /* sdeditor.cpp */,
+ 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */,
+ );
+ name = editor;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/editor;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF9C0F90D1DD003BB5A7 /* resources */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF9D0F90D1DD003BB5A7 /* bmp00128.bmp */,
+ 24A2FF9E0F90D1DD003BB5A7 /* bmp00129.bmp */,
+ 24A2FF9F0F90D1DD003BB5A7 /* bmp00130.bmp */,
+ 24A2FFA00F90D1DD003BB5A7 /* surrounddelay.rc */,
+ );
+ name = resources;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/editor/resources;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFA50F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFA60F90D1DD003BB5A7 /* adelay.vcproj */,
+ 24A2FFA70F90D1DD003BB5A7 /* surrounddelay.vcproj */,
+ );
+ name = win;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFA80F90D1DD003BB5A7 /* again */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFA90F90D1DD003BB5A7 /* source */,
+ 24A2FFAC0F90D1DD003BB5A7 /* win */,
+ );
+ name = again;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/again;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFA90F90D1DD003BB5A7 /* source */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFAA0F90D1DD003BB5A7 /* again.cpp */,
+ 24A2FFAB0F90D1DD003BB5A7 /* again.h */,
+ );
+ name = source;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/again/source;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFAC0F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFAD0F90D1DD003BB5A7 /* again.vcproj */,
+ );
+ name = win;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/again/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFAE0F90D1DD003BB5A7 /* mac */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFAF0F90D1DD003BB5A7 /* minihost-Info.plist */,
+ 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */,
+ 24A2FFB30F90D1DD003BB5A7 /* vst2.4Info.plist */,
+ );
+ name = mac;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/mac;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFB40F90D1DD003BB5A7 /* minihost */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFB50F90D1DD003BB5A7 /* source */,
+ 24A2FFB80F90D1DD003BB5A7 /* win */,
+ );
+ name = minihost;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFB50F90D1DD003BB5A7 /* source */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFB60F90D1DD003BB5A7 /* minieditor.cpp */,
+ 24A2FFB70F90D1DD003BB5A7 /* minihost.cpp */,
+ );
+ name = source;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost/source;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFB80F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFB90F90D1DD003BB5A7 /* minihost.vcproj */,
+ );
+ name = win;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFBA0F90D1DD003BB5A7 /* vstxsynth */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFBB0F90D1DD003BB5A7 /* resource */,
+ 24A2FFBE0F90D1DD003BB5A7 /* source */,
+ 24A2FFC30F90D1DD003BB5A7 /* win */,
+ );
+ name = vstxsynth;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFBB0F90D1DD003BB5A7 /* resource */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFBC0F90D1DD003BB5A7 /* vstxsynth.rc */,
+ 24A2FFBD0F90D1DD003BB5A7 /* vstxsynth.vstxml */,
+ );
+ name = resource;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/resource;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFBE0F90D1DD003BB5A7 /* source */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */,
+ 24A2FFC00F90D1DD003BB5A7 /* vstxsynth.cpp */,
+ 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */,
+ 24A2FFC20F90D1DD003BB5A7 /* vstxsynthproc.cpp */,
+ );
+ name = source;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/source;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFC30F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFC40F90D1DD003BB5A7 /* vstxsynth.vcproj */,
+ );
+ name = win;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFC50F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFC60F90D1DD003BB5A7 /* samples.sln */,
+ 24A2FFC70F90D1DD003BB5A7 /* vstplug.def */,
+ );
+ name = win;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFC80F90D1DD003BB5A7 /* win.vc2003 */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFC90F90D1DD003BB5A7 /* adelay.vcproj */,
+ 24A2FFCA0F90D1DD003BB5A7 /* again.vcproj */,
+ 24A2FFCB0F90D1DD003BB5A7 /* minihost.vcproj */,
+ 24A2FFCC0F90D1DD003BB5A7 /* samples.sln */,
+ 24A2FFCD0F90D1DD003BB5A7 /* surrounddelay.vcproj */,
+ 24A2FFCE0F90D1DD003BB5A7 /* vstxsynth.vcproj */,
+ );
+ name = win.vc2003;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/win.vc2003;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFCF0F90D1DD003BB5A7 /* win.vc6 */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFD00F90D1DD003BB5A7 /* adelay.dsp */,
+ 24A2FFD10F90D1DD003BB5A7 /* again.dsp */,
+ 24A2FFD20F90D1DD003BB5A7 /* minihost.dsp */,
+ 24A2FFD30F90D1DD003BB5A7 /* samples.dsw */,
+ 24A2FFD40F90D1DD003BB5A7 /* surrounddelay.dsp */,
+ 24A2FFD50F90D1DD003BB5A7 /* vstxsynth.dsp */,
+ );
+ name = win.vc6;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/win.vc6;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFD60F90D1DD003BB5A7 /* source */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFD70F90D1DD003BB5A7 /* vst2.x */,
+ );
+ name = source;
+ path = /vstsdk2.4/public.sdk/source;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFD70F90D1DD003BB5A7 /* vst2.x */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */,
+ 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */,
+ 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */,
+ 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */,
+ 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */,
+ 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */,
+ );
+ name = vst2.x;
+ path = /vstsdk2.4/public.sdk/source/vst2.x;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFDE0F90D1DD003BB5A7 /* vstgui.sf */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFDF0F90D1DD003BB5A7 /* drawtest */,
+ 24A200160F90D1DD003BB5A7 /* vstgui */,
+ );
+ name = vstgui.sf;
+ path = /vstsdk2.4/vstgui.sf;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFDF0F90D1DD003BB5A7 /* drawtest */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFE00F90D1DD003BB5A7 /* mac */,
+ 24A2FFEE0F90D1DD003BB5A7 /* resources */,
+ 24A200030F90D1DD003BB5A7 /* source */,
+ 24A2000F0F90D1DD003BB5A7 /* win */,
+ 24A200130F90D1DD003BB5A7 /* win.vc6 */,
+ );
+ name = drawtest;
+ path = /vstsdk2.4/vstgui.sf/drawtest;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFE00F90D1DD003BB5A7 /* mac */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFE10F90D1DD003BB5A7 /* audiounit.exp */,
+ 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */,
+ 24A2FFE30F90D1DD003BB5A7 /* drawtest.cw9prj */,
+ 24A2FFE40F90D1DD003BB5A7 /* drawtest.plc */,
+ 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */,
+ 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */,
+ 24A2FFEB0F90D1DD003BB5A7 /* Info.plist */,
+ 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */,
+ 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */,
+ );
+ name = mac;
+ path = /vstsdk2.4/vstgui.sf/drawtest/mac;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFEE0F90D1DD003BB5A7 /* resources */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFEF0F90D1DD003BB5A7 /* audiounit.r */,
+ 24A2FFF00F90D1DD003BB5A7 /* bmp00001.png */,
+ 24A2FFF10F90D1DD003BB5A7 /* bmp00100.png */,
+ 24A2FFF20F90D1DD003BB5A7 /* bmp01000.png */,
+ 24A2FFF30F90D1DD003BB5A7 /* bmp10001.bmp */,
+ 24A2FFF40F90D1DD003BB5A7 /* bmp10002.bmp */,
+ 24A2FFF50F90D1DD003BB5A7 /* bmp10003.bmp */,
+ 24A2FFF60F90D1DD003BB5A7 /* bmp10004.bmp */,
+ 24A2FFF70F90D1DD003BB5A7 /* bmp10005.bmp */,
+ 24A2FFF80F90D1DD003BB5A7 /* bmp10006.bmp */,
+ 24A2FFF90F90D1DD003BB5A7 /* bmp10007.bmp */,
+ 24A2FFFA0F90D1DD003BB5A7 /* bmp10008.bmp */,
+ 24A2FFFB0F90D1DD003BB5A7 /* bmp10009.bmp */,
+ 24A2FFFC0F90D1DD003BB5A7 /* bmp10010.bmp */,
+ 24A2FFFD0F90D1DD003BB5A7 /* bmp10011.bmp */,
+ 24A2FFFE0F90D1DD003BB5A7 /* bmp10012.bmp */,
+ 24A2FFFF0F90D1DD003BB5A7 /* bmp10013.bmp */,
+ 24A200000F90D1DD003BB5A7 /* bmp10014.bmp */,
+ 24A200010F90D1DD003BB5A7 /* bmp10015.bmp */,
+ 24A200020F90D1DD003BB5A7 /* bmp10016.bmp */,
+ );
+ name = resources;
+ path = /vstsdk2.4/vstgui.sf/drawtest/resources;
+ sourceTree = "<absolute>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 8D01CCC70486CAD60068D4B7 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 245463B90991757100464AD3 /* DitherFloat.h in Headers */,
+ 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
+ 24A202190F90D1DE003BB5A7 /* aeffect.h in Headers */,
+ 24A2021A0F90D1DE003BB5A7 /* aeffectx.h in Headers */,
+ 24A2021B0F90D1DE003BB5A7 /* vstfxstore.h in Headers */,
+ 24A2021D0F90D1DE003BB5A7 /* adelay.h in Headers */,
+ 24A202240F90D1DE003BB5A7 /* sdeditor.h in Headers */,
+ 24A202260F90D1DE003BB5A7 /* surrounddelay.h in Headers */,
+ 24A2022A0F90D1DE003BB5A7 /* again.h in Headers */,
+ 24A202330F90D1DE003BB5A7 /* gmnames.h in Headers */,
+ 24A202350F90D1DE003BB5A7 /* vstxsynth.h in Headers */,
+ 24A202460F90D1DE003BB5A7 /* aeffeditor.h in Headers */,
+ 24A202480F90D1DE003BB5A7 /* audioeffect.h in Headers */,
+ 24A2024A0F90D1DE003BB5A7 /* audioeffectx.h in Headers */,
+ 24A2024D0F90D1DE003BB5A7 /* cw_vst_prefix.pch++ in Headers */,
+ 24A202510F90D1DE003BB5A7 /* xcode_au_prefix.h in Headers */,
+ 24A202520F90D1DE003BB5A7 /* xcode_vst_prefix.h in Headers */,
+ 24A202680F90D1DE003BB5A7 /* controlsgui.h in Headers */,
+ 24A2026A0F90D1DE003BB5A7 /* pdrawtesteditor.h in Headers */,
+ 24A2026C0F90D1DE003BB5A7 /* pdrawtesteffect.h in Headers */,
+ 24A2026F0F90D1DE003BB5A7 /* pdrawtestview.h in Headers */,
+ 24A202710F90D1DE003BB5A7 /* pprimitivesviews.h in Headers */,
+ 24A202780F90D1DE003BB5A7 /* aeffguieditor.h in Headers */,
+ 24A2027A0F90D1DE003BB5A7 /* cfileselector.h in Headers */,
+ 24A2027D0F90D1DE003BB5A7 /* cscrollview.h in Headers */,
+ 24A2027F0F90D1DE003BB5A7 /* ctabview.h in Headers */,
+ 24A203A50F90D1DE003BB5A7 /* plugguieditor.h in Headers */,
+ 24A203A70F90D1DE003BB5A7 /* vstcontrols.h in Headers */,
+ 24A203A90F90D1DE003BB5A7 /* vstgui.h in Headers */,
+ 24A203AA0F90D1DE003BB5A7 /* vstkeycode.h in Headers */,
+ 24A203AB0F90D1DE003BB5A7 /* vstplugscarbon.h in Headers */,
+ 24A203AC0F90D1DE003BB5A7 /* vstplugsmac.h in Headers */,
+ 24A203AD0F90D1DE003BB5A7 /* vstplugsmacho.h in Headers */,
+ 24A203AE0F90D1DE003BB5A7 /* vstplugsquartz.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 8D01CCC60486CAD60068D4B7 /* DitherFloat */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "DitherFloat" */;
+ buildPhases = (
+ 8D01CCC70486CAD60068D4B7 /* Headers */,
+ 8D01CCC90486CAD60068D4B7 /* Resources */,
+ 8D01CCCB0486CAD60068D4B7 /* Sources */,
+ 8D01CCCF0486CAD60068D4B7 /* Rez */,
+ 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = DitherFloat;
+ productInstallPath = "$(HOME)/Library/Bundles";
+ productName = "FM-Chopper";
+ productReference = 2407DE920899296600EB68BF /* DitherFloat.vst */;
+ productType = "com.apple.product-type.bundle";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 089C1669FE841209C02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "DitherFloat" */;
+ compatibilityVersion = "Xcode 2.4";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
+ mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = 24A203E00F90D272003BB5A7 /* Products */;
+ ProjectRef = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */;
+ },
+ {
+ ProductGroup = 24A203E80F90D272003BB5A7 /* Products */;
+ ProjectRef = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */;
+ },
+ {
+ ProductGroup = 24A203CE0F90D272003BB5A7 /* Products */;
+ ProjectRef = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ 8D01CCC60486CAD60068D4B7 /* DitherFloat */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ 24A203D70F90D272003BB5A7 /* again.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = again.vst;
+ remoteRef = 24A203D60F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203D90F90D272003BB5A7 /* adelay.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = adelay.vst;
+ remoteRef = 24A203D80F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203DB0F90D272003BB5A7 /* vstxsynth.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = vstxsynth.vst;
+ remoteRef = 24A203DA0F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203DD0F90D272003BB5A7 /* surrounddelay.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = surrounddelay.vst;
+ remoteRef = 24A203DC0F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203DF0F90D272003BB5A7 /* minihost.app */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.application;
+ path = minihost.app;
+ remoteRef = 24A203DE0F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203E50F90D272003BB5A7 /* drawtest.component */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = drawtest.component;
+ remoteRef = 24A203E40F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203E70F90D272003BB5A7 /* drawtest.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = drawtest.vst;
+ remoteRef = 24A203E60F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203ED0F90D272003BB5A7 /* drawtest.component */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = drawtest.component;
+ remoteRef = 24A203EC0F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203EF0F90D272003BB5A7 /* drawtest.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = drawtest.vst;
+ remoteRef = 24A203EE0F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 8D01CCC90486CAD60068D4B7 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXRezBuildPhase section */
+ 8D01CCCF0486CAD60068D4B7 /* Rez */ = {
+ isa = PBXRezBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXRezBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Copy PkgInfo";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/bash;
+ shellScript = "cp mac/PkgInfo \"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.vst/Contents/\"";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8D01CCCB0486CAD60068D4B7 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2407DEB9089929BA00EB68BF /* DitherFloat.cpp in Sources */,
+ 24D8287009A914000093AEF8 /* DitherFloatProc.cpp in Sources */,
+ 24A203CB0F90D251003BB5A7 /* audioeffect.cpp in Sources */,
+ 24A203CC0F90D251003BB5A7 /* audioeffectx.cpp in Sources */,
+ 24A203CD0F90D251003BB5A7 /* vstplugmain.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 24BEAAEE08919AE700E695F9 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = "";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_ENABLE_TRIGRAPHS = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "";
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
+ GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
+ GCC_WARN_UNKNOWN_PRAGMAS = NO;
+ HEADER_SEARCH_PATHS = "/vstsdk2.4/**";
+ INFOPLIST_FILE = ./mac/Info.plist;
+ LIBRARY_SEARCH_PATHS = "";
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = Gain;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ WRAPPER_EXTENSION = vst;
+ };
+ name = Debug;
+ };
+ 24BEAAEF08919AE700E695F9 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ x86_64,
+ );
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = "";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_ENABLE_TRIGRAPHS = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G4;
+ GCC_OPTIMIZATION_LEVEL = s;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "";
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
+ GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
+ GCC_WARN_UNKNOWN_PRAGMAS = NO;
+ HEADER_SEARCH_PATHS = "/vstsdk2.4/**";
+ INFOPLIST_FILE = ./mac/Info.plist;
+ LIBRARY_SEARCH_PATHS = "";
+ MACOSX_DEPLOYMENT_TARGET = 10.4;
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = DitherFloat;
+ SDKROOT = /Developer/SDKs/MacOSX10.5.sdk;
+ SECTORDER_FLAGS = "";
+ SKIP_INSTALL = NO;
+ STRIP_INSTALLED_PRODUCT = YES;
+ STRIP_STYLE = all;
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ WRAPPER_EXTENSION = vst;
+ };
+ name = Release;
+ };
+ 24BEAAF208919AE700E695F9 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(NATIVE_ARCH)";
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
+ INFOPLIST_FILE = "";
+ INFOPLIST_PREPROCESS = NO;
+ };
+ name = Debug;
+ };
+ 24BEAAF308919AE700E695F9 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
+ ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_MODEL_TUNING = G4;
+ GCC_OPTIMIZATION_LEVEL = s;
+ INFOPLIST_FILE = "";
+ INFOPLIST_PREPROCESS = NO;
+ SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "DitherFloat" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 24BEAAEE08919AE700E695F9 /* Debug */,
+ 24BEAAEF08919AE700E695F9 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+ 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "DitherFloat" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 24BEAAF208919AE700E695F9 /* Debug */,
+ 24BEAAF308919AE700E695F9 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 089C1669FE841209C02AAC07 /* Project object */;
+}
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100755
index 0000000..a80c038
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:Sample.xcodeproj">
+ </FileRef>
+</Workspace>
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100755
index 0000000..5c38f94
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100755
index 0000000..314de0f
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/spiadmin.mode1v3
new file mode 100755
index 0000000..c572326
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/spiadmin.mode1v3
@@ -0,0 +1,1372 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Name</key>
+ <string>Project Format Conflicts List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>BundlePath</key>
+ <string>/Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+ <key>Description</key>
+ <string>DefaultDescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>mode1v3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>91857D9F148EF61800AAA11B</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.mode1v3</string>
+ <key>MajorVersion</key>
+ <integer>33</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Default</string>
+ <key>Notifications</key>
+ <array/>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>-1</integer>
+ <integer>-1</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>active-combo-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProjectWithEditor</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>089C166AFE841209C02AAC07</string>
+ <string>089C1671FE841209C02AAC07</string>
+ <string>19C28FB4FE9D528D11CA2CBB</string>
+ <string>089C167CFE841241C02AAC07</string>
+ <string>08FB77ADFE841716C02AAC07</string>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>11</integer>
+ <integer>10</integer>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 693}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 711}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>286 197 1261 752 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>203pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20306471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Gain.cpp</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20406471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Gain.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>911C2A9D1491A5F600A430AF</string>
+ <key>history</key>
+ <array>
+ <string>915DCCBB1491A5B8008574E6</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {1053, 508}}</string>
+ <key>RubberWindowFrame</key>
+ <string>286 197 1261 752 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>508pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20506471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 513}, {1053, 198}}</string>
+ <key>RubberWindowFrame</key>
+ <string>286 197 1261 752 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>198pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>1053pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>911C2A901491A5F600A430AF</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>911C2A911491A5F600A430AF</string>
+ <string>1CE0B20306471E060097A5F4</string>
+ <string>1CE0B20506471E060097A5F4</string>
+ </array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.morph</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 337}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>1</integer>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 355}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>373 269 690 397 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Morph</string>
+ <key>PreferredWidth</key>
+ <integer>300</integer>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default.shortV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <false/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>0.0</real>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>91857DA0148EF61800AAA11B</string>
+ <string>/Users/spiadmin/Documents/Gain/Gain.xcodeproj</string>
+ </array>
+ <key>WindowString</key>
+ <string>286 197 1261 752 0 0 1680 1028 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {743, 413}}</string>
+ <key>RubberWindowFrame</key>
+ <string>112 208 743 695 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>413pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build Results</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1011</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 418}, {743, 236}}</string>
+ <key>RubberWindowFrame</key>
+ <string>112 208 743 695 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>236pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>654pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>91857DA0148EF61800AAA11B</string>
+ <string>911C2A921491A5F600A430AF</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowContentMinSize</key>
+ <string>486 300</string>
+ <key>WindowString</key>
+ <string>112 208 743 695 0 0 1680 1028 </string>
+ <key>WindowToolGUID</key>
+ <string>91857DA0148EF61800AAA11B</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {317, 164}}</string>
+ <string>{{317, 0}, {377, 164}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 164}}</string>
+ <string>{{0, 164}, {694, 216}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 380}}</string>
+ <key>RubberWindowFrame</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C0AD2AB069F1E9B00FABCE6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>1C0AD2AC069F1E9B00FABCE6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528D0623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 167}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{8, 0}, {773, 254}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>428pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>1C530D58069F1CE1000CFCEE</string>
+ <string>1C530D59069F1CE1000CFCEE</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1C530D5A069F1CE1000CFCEE</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>MENUSEPARATOR</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {650, 250}}</string>
+ <key>RubberWindowFrame</key>
+ <string>516 632 650 250 0 0 1680 1027 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>209pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>209pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>1C78EAAE065D492600B07095</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>650 41 650 250 0 0 1280 1002 </string>
+ <key>WindowToolGUID</key>
+ <string>1C78EAAD065D492600B07095</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.0950012207031</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scm</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.projectFormatConflicts</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Format Conflicts</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCProjectFormatConflictsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowContentMinSize</key>
+ <string>450 300</string>
+ <key>WindowString</key>
+ <string>50 850 472 307 0 0 1440 877</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {374, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {630, 331}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {374, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>97</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <string>1C0AD2B0069F1E9B00FABCE6</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/spiadmin.pbxuser
new file mode 100755
index 0000000..df94780
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/spiadmin.pbxuser
@@ -0,0 +1,143 @@
+// !$*UTF8*$!
+{
+ 089C1669FE841209C02AAC07 /* Project object */ = {
+ activeBuildConfigurationName = Release;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */;
+ codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */;
+ perUserDictionary = {
+ PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 829,
+ 20,
+ 48,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
+ PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 789,
+ 60,
+ 20,
+ 48,
+ 43,
+ 43,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXTargetDataSource_PrimaryAttribute,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ );
+ };
+ PBXPerProjectTemplateStateSaveDate = 345089498;
+ PBXWorkspaceStateSaveDate = 345089498;
+ };
+ perUserProjectItems = {
+ 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */;
+ 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */;
+ };
+ sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */;
+ userBuildSettings = {
+ };
+ };
+ 2407DEB6089929BA00EB68BF /* Gain.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}";
+ sepNavSelRange = "{247, 0}";
+ sepNavVisRange = "{0, 1657}";
+ };
+ };
+ 245463B80991757100464AD3 /* Gain.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {992, 975}}";
+ sepNavSelRange = "{1552, 0}";
+ sepNavVisRange = "{796, 1857}";
+ sepNavWindowFrame = "{{15, 465}, {750, 558}}";
+ };
+ };
+ 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {992, 488}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 798}";
+ };
+ };
+ 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}";
+ sepNavSelRange = "{10641, 0}";
+ sepNavVisRange = "{10076, 1095}";
+ };
+ };
+ 24D8286F09A914000093AEF8 /* GainProc.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {992, 482}}";
+ sepNavSelRange = "{239, 0}";
+ sepNavVisRange = "{0, 950}";
+ };
+ };
+ 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {992, 493}}";
+ sepNavSelRange = "{249, 0}";
+ sepNavVisRange = "{0, 249}";
+ };
+ };
+ 8D01CCC60486CAD60068D4B7 /* Gain */ = {
+ activeExec = 0;
+ };
+ 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
+ name = "Gain.cpp: 10";
+ rLen = 0;
+ rLoc = 247;
+ rType = 0;
+ vrLen = 1657;
+ vrLoc = 0;
+ };
+ 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
+ name = "Gain.cpp: 10";
+ rLen = 0;
+ rLoc = 247;
+ rType = 0;
+ vrLen = 1625;
+ vrLoc = 0;
+ };
+ 91857D94148EF55400AAA11B /* Source Control */ = {
+ isa = PBXSourceControlManager;
+ fallbackIsa = XCSourceControlManager;
+ isSCMEnabled = 0;
+ scmConfiguration = {
+ repositoryNamesForRoots = {
+ "" = "";
+ };
+ };
+ };
+ 91857D95148EF55400AAA11B /* Code sense */ = {
+ isa = PBXCodeSenseManager;
+ indexTemplatePath = "";
+ };
+}
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
new file mode 100755
index 0000000..8ee693f
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0720"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
+ BuildableName = "Gain.vst"
+ BlueprintName = "Gain"
+ ReferencedContainer = "container:Gain.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES">
+ <Testables>
+ </Testables>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </TestAction>
+ <LaunchAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ debugServiceExtension = "internal"
+ allowLocationSimulation = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
+ BuildableName = "Gain.vst"
+ BlueprintName = "Gain"
+ ReferencedContainer = "container:Gain.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ buildConfiguration = "Release"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ debugDocumentVersioning = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
+ BuildableName = "Gain.vst"
+ BlueprintName = "Gain"
+ ReferencedContainer = "container:Gain.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100755
index 0000000..5bccbcb
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>SchemeUserState</key>
+ <dict>
+ <key>Gain.xcscheme</key>
+ <dict>
+ <key>orderHint</key>
+ <integer>8</integer>
+ </dict>
+ </dict>
+ <key>SuppressBuildableAutocreation</key>
+ <dict>
+ <key>8D01CCC60486CAD60068D4B7</key>
+ <dict>
+ <key>primary</key>
+ <true/>
+ </dict>
+ </dict>
+</dict>
+</plist>
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100755
index 0000000..a7bdd62
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>SchemeUserState</key>
+ <dict>
+ <key>«PROJECTNAME».xcscheme</key>
+ <dict>
+ <key>orderHint</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <key>SuppressBuildableAutocreation</key>
+ <dict>
+ <key>8D01CCC60486CAD60068D4B7</key>
+ <dict>
+ <key>primary</key>
+ <true/>
+ </dict>
+ </dict>
+</dict>
+</plist>
diff --git a/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
new file mode 100755
index 0000000..0df2de4
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/DitherFloat.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
+ BuildableName = "&#171;PROJECTNAME&#187;.vst"
+ BlueprintName = "&#171;PROJECTNAME&#187;"
+ ReferencedContainer = "container:Sample.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ buildConfiguration = "Debug">
+ <Testables>
+ </Testables>
+ </TestAction>
+ <LaunchAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Debug"
+ debugDocumentVersioning = "YES"
+ allowLocationSimulation = "YES">
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Release"
+ debugDocumentVersioning = "YES">
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/plugins/MacVST/DitherFloat/mac/Info.plist b/plugins/MacVST/DitherFloat/mac/Info.plist
new file mode 100755
index 0000000..8167b96
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/mac/Info.plist
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>DitherFloat</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.airwindows.DitherFloat</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleSignature</key>
+ <string>Dthr</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>CSResourcesFileMapped</key>
+ <true/>
+</dict>
+</plist>
diff --git a/plugins/MacVST/DitherFloat/mac/PkgInfo b/plugins/MacVST/DitherFloat/mac/PkgInfo
new file mode 100755
index 0000000..19a9cf6
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/mac/PkgInfo
@@ -0,0 +1 @@
+BNDL???? \ No newline at end of file
diff --git a/plugins/MacVST/DitherFloat/mac/xcode_vst_prefix.h b/plugins/MacVST/DitherFloat/mac/xcode_vst_prefix.h
new file mode 100755
index 0000000..eaf4c0b
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/mac/xcode_vst_prefix.h
@@ -0,0 +1,17 @@
+#define MAC 1
+#define MACX 1
+
+#define USE_NAMESPACE 0
+
+#define TARGET_API_MAC_CARBON 1
+#define USENAVSERVICES 1
+
+#define __CF_USE_FRAMEWORK_INCLUDES__
+
+#if __MWERKS__
+#define __NOEXTENSIONS__
+#endif
+
+#define QUARTZ 1
+
+#include <AvailabilityMacros.h> \ No newline at end of file
diff --git a/plugins/MacVST/DitherFloat/source/DitherFloat.cpp b/plugins/MacVST/DitherFloat/source/DitherFloat.cpp
new file mode 100755
index 0000000..ffd9e94
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/source/DitherFloat.cpp
@@ -0,0 +1,127 @@
+/* ========================================
+ * DitherFloat - DitherFloat.h
+ * Copyright (c) 2016 airwindows, All rights reserved
+ * ======================================== */
+
+#ifndef __DitherFloat_H
+#include "DitherFloat.h"
+#endif
+
+AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new DitherFloat(audioMaster);}
+
+DitherFloat::DitherFloat(audioMasterCallback audioMaster) :
+ AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
+{
+ A = 0.0;
+ B = 1.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
+ //this is reset: values being initialized only once. Startup values, whatever they are.
+
+ _canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
+ _canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
+ _canDo.insert("x2in2out");
+ setNumInputs(kNumInputs);
+ setNumOutputs(kNumOutputs);
+ setUniqueID(kUniqueId);
+ canProcessReplacing(); // supports output replacing
+ canDoubleReplacing(); // supports double precision processing
+ programsAreChunks(true);
+ vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
+}
+
+DitherFloat::~DitherFloat() {}
+VstInt32 DitherFloat::getVendorVersion () {return 1000;}
+void DitherFloat::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
+void DitherFloat::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
+//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
+//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
+
+static float pinParameter(float data)
+{
+ if (data < 0.0f) return 0.0f;
+ if (data > 1.0f) return 1.0f;
+ return data;
+}
+
+VstInt32 DitherFloat::getChunk (void** data, bool isPreset)
+{
+ float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
+ chunkData[0] = A;
+ chunkData[1] = B;
+ /* Note: The way this is set up, it will break if you manage to save settings on an Intel
+ machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
+ started with. */
+
+ *data = chunkData;
+ return kNumParameters * sizeof(float);
+}
+
+VstInt32 DitherFloat::setChunk (void* data, VstInt32 byteSize, bool isPreset)
+{
+ float *chunkData = (float *)data;
+ A = pinParameter(chunkData[0]);
+ B = pinParameter(chunkData[1]);
+ /* We're ignoring byteSize as we found it to be a filthy liar */
+
+ /* calculate any other fields you need here - you could copy in
+ code from setParameter() here. */
+ return 0;
+}
+
+void DitherFloat::setParameter(VstInt32 index, float value) {
+ switch (index) {
+ case kParamA: A = value; break;
+ case kParamB: B = value; break;
+ default: throw; // unknown parameter, shouldn't happen!
+ }
+}
+
+float DitherFloat::getParameter(VstInt32 index) {
+ switch (index) {
+ case kParamA: return A; break;
+ case kParamB: return B; break;
+ default: break; // unknown parameter, shouldn't happen!
+ } return 0.0; //we only need to update the relevant name, this is simple to manage
+}
+
+void DitherFloat::getParameterName(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: vst_strncpy (text, "Offset", kVstMaxParamStrLen); break;
+ case kParamB: vst_strncpy (text, "Dither", kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ } //this is our labels for displaying in the VST host
+}
+
+void DitherFloat::getParameterDisplay(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: int2string ((VstInt32)(A * 32), text, kVstMaxParamStrLen); break;
+ case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ } //this displays the values and handles 'popups' where it's discrete choices
+}
+
+void DitherFloat::getParameterLabel(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ }
+}
+
+VstInt32 DitherFloat::canDo(char *text)
+{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
+
+bool DitherFloat::getEffectName(char* name) {
+ vst_strncpy(name, "DitherFloat", kVstMaxProductStrLen); return true;
+}
+
+VstPlugCategory DitherFloat::getPlugCategory() {return kPlugCategEffect;}
+
+bool DitherFloat::getProductString(char* text) {
+ vst_strncpy (text, "airwindows DitherFloat", kVstMaxProductStrLen); return true;
+}
+
+bool DitherFloat::getVendorString(char* text) {
+ vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
+}
diff --git a/plugins/MacVST/DitherFloat/source/DitherFloat.h b/plugins/MacVST/DitherFloat/source/DitherFloat.h
new file mode 100755
index 0000000..b8ddf51
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/source/DitherFloat.h
@@ -0,0 +1,64 @@
+/* ========================================
+ * DitherFloat - DitherFloat.h
+ * Created 8/12/11 by SPIAdmin
+ * Copyright (c) 2011 __MyCompanyName__, All rights reserved
+ * ======================================== */
+
+#ifndef __DitherFloat_H
+#define __DitherFloat_H
+
+#ifndef __audioeffect__
+#include "audioeffectx.h"
+#endif
+
+#include <set>
+#include <string>
+#include <math.h>
+
+enum {
+ kParamA = 0,
+ kParamB = 1,
+ kNumParameters = 2
+}; //
+
+const int kNumPrograms = 0;
+const int kNumInputs = 2;
+const int kNumOutputs = 2;
+const unsigned long kUniqueId = 'dthf'; //Change this to what the AU identity is!
+
+class DitherFloat :
+ public AudioEffectX
+{
+public:
+ DitherFloat(audioMasterCallback audioMaster);
+ ~DitherFloat();
+ virtual bool getEffectName(char* name); // The plug-in name
+ virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
+ virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
+ virtual bool getVendorString(char* text); // Vendor info
+ virtual VstInt32 getVendorVersion(); // Version number
+ virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
+ virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
+ virtual void getProgramName(char *name); // read the name from the host
+ virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
+ virtual VstInt32 getChunk (void** data, bool isPreset);
+ virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
+ virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
+ virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
+ virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
+ virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
+ virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
+ virtual VstInt32 canDo(char *text);
+private:
+ char _programName[kVstMaxProgNameLen + 1];
+ std::set< std::string > _canDo;
+
+ long double fpNShapeL;
+ long double fpNShapeR;
+ //default stuff
+
+ float A;
+ float B;
+};
+
+#endif
diff --git a/plugins/MacVST/DitherFloat/source/DitherFloatProc.cpp b/plugins/MacVST/DitherFloat/source/DitherFloatProc.cpp
new file mode 100755
index 0000000..3c76a1a
--- /dev/null
+++ b/plugins/MacVST/DitherFloat/source/DitherFloatProc.cpp
@@ -0,0 +1,184 @@
+/* ========================================
+ * DitherFloat - DitherFloat.h
+ * Copyright (c) 2016 airwindows, All rights reserved
+ * ======================================== */
+
+#ifndef __DitherFloat_H
+#include "DitherFloat.h"
+#endif
+
+void DitherFloat::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
+{
+ float* in1 = inputs[0];
+ float* in2 = inputs[1];
+ float* out1 = outputs[0];
+ float* out2 = outputs[1];
+
+ double overallscale = 1.0;
+ overallscale /= 44100.0;
+ overallscale *= getSampleRate();
+
+ int floatOffset = (A * 32);
+ long double blend = B;
+
+ long double gain = 0;
+
+ switch (floatOffset)
+ {
+ case 0: gain = 1.0; break;
+ case 1: gain = 2.0; break;
+ case 2: gain = 4.0; break;
+ case 3: gain = 8.0; break;
+ case 4: gain = 16.0; break;
+ case 5: gain = 32.0; break;
+ case 6: gain = 64.0; break;
+ case 7: gain = 128.0; break;
+ case 8: gain = 256.0; break;
+ case 9: gain = 512.0; break;
+ case 10: gain = 1024.0; break;
+ case 11: gain = 2048.0; break;
+ case 12: gain = 4096.0; break;
+ case 13: gain = 8192.0; break;
+ case 14: gain = 16384.0; break;
+ case 15: gain = 32768.0; break;
+ case 16: gain = 65536.0; break;
+ case 17: gain = 131072.0; break;
+ case 18: gain = 262144.0; break;
+ case 19: gain = 524288.0; break;
+ case 20: gain = 1048576.0; break;
+ case 21: gain = 2097152.0; break;
+ case 22: gain = 4194304.0; break;
+ case 23: gain = 8388608.0; break;
+ case 24: gain = 16777216.0; break;
+ case 25: gain = 33554432.0; break;
+ case 26: gain = 67108864.0; break;
+ case 27: gain = 134217728.0; break;
+ case 28: gain = 268435456.0; break;
+ case 29: gain = 536870912.0; break;
+ case 30: gain = 1073741824.0; break;
+ case 31: gain = 2147483648.0; break;
+ case 32: gain = 4294967296.0; break;
+ }
+ //we are directly punching in the gain values rather than calculating them
+
+ while (--sampleFrames >= 0)
+ {
+ long double inputSampleL = *in1 + (gain-1);
+ long double inputSampleR = *in2 + (gain-1);
+
+
+
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62) * blend; //remove 'blend' for real use, it's for the demo;
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62) * blend; //remove 'blend' for real use, it's for the demo;
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
+
+
+
+ inputSampleL = (float)inputSampleL; //equivalent of 'floor' for 32 bit floating point
+ inputSampleR = (float)inputSampleR; //equivalent of 'floor' for 32 bit floating point
+ //We do that separately, we're truncating to floating point WHILE heavily offset.
+
+ *out1 = inputSampleL - (gain-1);
+ *out2 = inputSampleR - (gain-1);
+
+ *in1++;
+ *in2++;
+ *out1++;
+ *out2++;
+ }
+}
+
+void DitherFloat::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
+{
+ double* in1 = inputs[0];
+ double* in2 = inputs[1];
+ double* out1 = outputs[0];
+ double* out2 = outputs[1];
+
+ double overallscale = 1.0;
+ overallscale /= 44100.0;
+ overallscale *= getSampleRate();
+
+ int floatOffset = (A * 32);
+ long double blend = B;
+
+ long double gain = 0;
+
+ switch (floatOffset)
+ {
+ case 0: gain = 1.0; break;
+ case 1: gain = 2.0; break;
+ case 2: gain = 4.0; break;
+ case 3: gain = 8.0; break;
+ case 4: gain = 16.0; break;
+ case 5: gain = 32.0; break;
+ case 6: gain = 64.0; break;
+ case 7: gain = 128.0; break;
+ case 8: gain = 256.0; break;
+ case 9: gain = 512.0; break;
+ case 10: gain = 1024.0; break;
+ case 11: gain = 2048.0; break;
+ case 12: gain = 4096.0; break;
+ case 13: gain = 8192.0; break;
+ case 14: gain = 16384.0; break;
+ case 15: gain = 32768.0; break;
+ case 16: gain = 65536.0; break;
+ case 17: gain = 131072.0; break;
+ case 18: gain = 262144.0; break;
+ case 19: gain = 524288.0; break;
+ case 20: gain = 1048576.0; break;
+ case 21: gain = 2097152.0; break;
+ case 22: gain = 4194304.0; break;
+ case 23: gain = 8388608.0; break;
+ case 24: gain = 16777216.0; break;
+ case 25: gain = 33554432.0; break;
+ case 26: gain = 67108864.0; break;
+ case 27: gain = 134217728.0; break;
+ case 28: gain = 268435456.0; break;
+ case 29: gain = 536870912.0; break;
+ case 30: gain = 1073741824.0; break;
+ case 31: gain = 2147483648.0; break;
+ case 32: gain = 4294967296.0; break;
+ }
+ //we are directly punching in the gain values rather than calculating them
+
+ while (--sampleFrames >= 0)
+ {
+ long double inputSampleL = *in1 + (gain-1);
+ long double inputSampleR = *in2 + (gain-1);
+
+
+
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62) * blend; //remove 'blend' for real use, it's for the demo;
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62) * blend; //remove 'blend' for real use, it's for the demo;
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
+
+
+
+ inputSampleL = (float)inputSampleL; //equivalent of 'floor' for 32 bit floating point
+ inputSampleR = (float)inputSampleR; //equivalent of 'floor' for 32 bit floating point
+ //We do that separately, we're truncating to floating point WHILE heavily offset.
+
+ //note for 64 bit version: this is not for actually dithering 64 bit floats!
+ //This is specifically for demonstrating the sound of 32 bit floating point dither
+ //even over a 64 bit buss. Therefore it should be using float, above!
+
+ *out1 = inputSampleL - (gain-1);
+ *out2 = inputSampleR - (gain-1);
+
+ *in1++;
+ *in2++;
+ *out1++;
+ *out2++;
+ }
+}
diff --git a/plugins/MacVST/DitherMeDiskers/DitherMeDiskers.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/DitherMeDiskers/DitherMeDiskers.xcodeproj/christopherjohnson.pbxuser
index 79d6624..a600232 100755
--- a/plugins/MacVST/DitherMeDiskers/DitherMeDiskers.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/DitherMeDiskers/DitherMeDiskers.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 566520525;
- PBXWorkspaceStateSaveDate = 566520525;
+ PBXPerProjectTemplateStateSaveDate = 569734615;
+ PBXWorkspaceStateSaveDate = 569734615;
};
perUserProjectItems = {
- 8BBB33E421C45DDB00825986 /* PBXTextBookmark */ = 8BBB33E421C45DDB00825986 /* PBXTextBookmark */;
+ 8B79387A21F575DF006E9731 /* PBXTextBookmark */ = 8B79387A21F575DF006E9731 /* PBXTextBookmark */;
8BBB33F821C46ADB00825986 /* PBXTextBookmark */ = 8BBB33F821C46ADB00825986 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -62,9 +62,9 @@
};
2407DEB6089929BA00EB68BF /* DitherMeDiskers.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {649, 1209}}";
+ sepNavIntBoundsRect = "{{0, 0}, {649, 1183}}";
sepNavSelRange = "{2491, 0}";
- sepNavVisRange = "{2343, 150}";
+ sepNavVisRange = "{2345, 148}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
@@ -106,15 +106,15 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BBB33E421C45DDB00825986 /* PBXTextBookmark */ = {
+ 8B79387A21F575DF006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* DitherMeDiskers.cpp */;
name = "DitherMeDiskers.cpp: 69";
rLen = 0;
rLoc = 2491;
rType = 0;
- vrLen = 219;
- vrLoc = 2274;
+ vrLen = 148;
+ vrLoc = 2345;
};
8BBB33F821C46ADB00825986 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/DitherMeDiskers/DitherMeDiskers.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/DitherMeDiskers/DitherMeDiskers.xcodeproj/christopherjohnson.perspectivev3
index 6f5eba5..a10a837 100755
--- a/plugins/MacVST/DitherMeDiskers/DitherMeDiskers.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/DitherMeDiskers/DitherMeDiskers.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BBB33F821C46ADB00825986</string>
+ <string>8B79387A21F575DF006E9731</string>
<key>history</key>
<array>
- <string>8BBB33E421C45DDB00825986</string>
+ <string>8BBB33F821C46ADB00825986</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 117}}</string>
+ <string>{{0, 0}, {603, 102}}</string>
<key>RubberWindowFrame</key>
<string>320 286 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>117pt</string>
+ <string>102pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>324pt</string>
+ <string>339pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 297}}</string>
+ <string>{{10, 27}, {603, 312}}</string>
<key>RubberWindowFrame</key>
<string>320 286 810 487 0 0 1440 878 </string>
</dict>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBB33F921C46ADB00825986</string>
+ <string>8B79387B21F575DF006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBB33FA21C46ADB00825986</string>
+ <string>8B79387C21F575DF006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBB33FB21C46ADB00825986</string>
+ <string>8B79387D21F575DF006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>566520539.86159599</real>
+ <real>569734623.23729205</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BBB33FC21C46ADB00825986</string>
<string>/Users/christopherjohnson/Desktop/MacVST/DitherMeDiskers/DitherMeDiskers.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/DitherMeTimbers/DitherMeTimbers.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/DitherMeTimbers/DitherMeTimbers.xcodeproj/christopherjohnson.pbxuser
index 3192b34..67d6ce9 100755
--- a/plugins/MacVST/DitherMeTimbers/DitherMeTimbers.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/DitherMeTimbers/DitherMeTimbers.xcodeproj/christopherjohnson.pbxuser
@@ -49,14 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 566520842;
- PBXWorkspaceStateSaveDate = 566520842;
+ PBXPerProjectTemplateStateSaveDate = 569734651;
+ PBXWorkspaceStateSaveDate = 569734651;
};
perUserProjectItems = {
8B416DB721B6143700DD5013 /* PBXTextBookmark */ = 8B416DB721B6143700DD5013 /* PBXTextBookmark */;
8B416DB821B6143700DD5013 /* PBXBookmark */ = 8B416DB821B6143700DD5013 /* PBXBookmark */;
+ 8B79389A21F57607006E9731 /* PBXTextBookmark */ = 8B79389A21F57607006E9731 /* PBXTextBookmark */;
8BBB310321B8993300825986 /* PBXTextBookmark */ = 8BBB310321B8993300825986 /* PBXTextBookmark */;
- 8BBB34C021C46EA800825986 /* PBXTextBookmark */ = 8BBB34C021C46EA800825986 /* PBXTextBookmark */;
8BBB34C121C46EA800825986 /* PBXTextBookmark */ = 8BBB34C121C46EA800825986 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -123,18 +123,22 @@
isa = PBXBookmark;
fRef = 245463B80991757100464AD3 /* DitherMeTimbers.h */;
};
+ 8B79389A21F57607006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* DitherMeTimbersProc.cpp */;
+ name = "DitherMeTimbersProc.cpp: 122";
+ rLen = 0;
+ rLoc = 3612;
+ rType = 0;
+ vrLen = 0;
+ vrLoc = 0;
+ };
8BBB308D21B7F07D00825986 /* DitherMeTImbers.h */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
name = DitherMeTImbers.h;
path = /Users/christopherjohnson/Desktop/MacVST/DitherMeTimbers/source/DitherMeTImbers.h;
sourceTree = "<absolute>";
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 819}}";
- sepNavSelRange = "{2473, 86}";
- sepNavVisRange = "{283, 2287}";
- sepNavWindowFrame = "{{555, 47}, {895, 831}}";
- };
};
8BBB310321B8993300825986 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
@@ -146,16 +150,6 @@
vrLen = 7;
vrLoc = 2563;
};
- 8BBB34C021C46EA800825986 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* DitherMeTimbersProc.cpp */;
- name = "DitherMeTimbersProc.cpp: 122";
- rLen = 0;
- rLoc = 3612;
- rType = 0;
- vrLen = 0;
- vrLoc = 0;
- };
8BBB34C121C46EA800825986 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* DitherMeTimbersProc.cpp */;
diff --git a/plugins/MacVST/DitherMeTimbers/DitherMeTimbers.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/DitherMeTimbers/DitherMeTimbers.xcodeproj/christopherjohnson.perspectivev3
index e3b2aee..66ebae8 100755
--- a/plugins/MacVST/DitherMeTimbers/DitherMeTimbers.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/DitherMeTimbers/DitherMeTimbers.xcodeproj/christopherjohnson.perspectivev3
@@ -351,13 +351,13 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BBB34C121C46EA800825986</string>
+ <string>8B79389A21F57607006E9731</string>
<key>history</key>
<array>
<string>8B416DB721B6143700DD5013</string>
<string>8B416DB821B6143700DD5013</string>
<string>8BBB310321B8993300825986</string>
- <string>8BBB34C021C46EA800825986</string>
+ <string>8BBB34C121C46EA800825986</string>
</array>
</dict>
<key>SplitCount</key>
@@ -371,18 +371,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>613 141 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -396,7 +396,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
<string>613 141 810 487 0 0 1440 878 </string>
</dict>
@@ -480,11 +480,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBB34C221C46EA800825986</string>
+ <string>8B79389B21F57607006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBB34C321C46EA800825986</string>
+ <string>8B79389C21F57607006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBB34C421C46EA800825986</string>
+ <string>8B79389D21F57607006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -637,7 +637,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>566521512.17248595</real>
+ <real>569734663.38253498</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -654,7 +654,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BBB34C521C46EA800825986</string>
<string>/Users/christopherjohnson/Desktop/MacVST/DitherMeTimbers/DitherMeTimbers.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Ditherbox/Ditherbox.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Ditherbox/Ditherbox.xcodeproj/christopherjohnson.pbxuser
index fafb484..32eaf98 100755
--- a/plugins/MacVST/Ditherbox/Ditherbox.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Ditherbox/Ditherbox.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 557697507;
- PBXWorkspaceStateSaveDate = 557697507;
+ PBXPerProjectTemplateStateSaveDate = 569734571;
+ PBXWorkspaceStateSaveDate = 569734571;
};
perUserProjectItems = {
- 8B913F89213DBC2200BA6EEC /* PBXTextBookmark */ = 8B913F89213DBC2200BA6EEC /* PBXTextBookmark */;
+ 8B79385A21F575BA006E9731 /* PBXTextBookmark */ = 8B79385A21F575BA006E9731 /* PBXTextBookmark */;
8B914093213DCA1600BA6EEC /* PBXTextBookmark */ = 8B914093213DCA1600BA6EEC /* PBXTextBookmark */;
8B914094213DCA1600BA6EEC /* PBXTextBookmark */ = 8B914094213DCA1600BA6EEC /* PBXTextBookmark */;
};
@@ -87,9 +87,9 @@
};
24D8286F09A914000093AEF8 /* DitherboxProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {565, 26065}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 26065}}";
sepNavSelRange = "{81896, 0}";
- sepNavVisRange = "{39186, 42}";
+ sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{516, 47}, {895, 831}}";
};
};
@@ -107,15 +107,15 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B913F89213DBC2200BA6EEC /* PBXTextBookmark */ = {
+ 8B79385A21F575BA006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* DitherboxProc.cpp */;
- name = "DitherboxProc.cpp: 1829";
+ name = "DitherboxProc.cpp: 2008";
rLen = 0;
rLoc = 81896;
rType = 0;
- vrLen = 246;
- vrLoc = 38973;
+ vrLen = 0;
+ vrLoc = 0;
};
8B914093213DCA1600BA6EEC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/Ditherbox/Ditherbox.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Ditherbox/Ditherbox.xcodeproj/christopherjohnson.perspectivev3
index b9f897f..dfee9c0 100755
--- a/plugins/MacVST/Ditherbox/Ditherbox.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Ditherbox/Ditherbox.xcodeproj/christopherjohnson.perspectivev3
@@ -351,11 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B914094213DCA1600BA6EEC</string>
+ <string>8B79385A21F575BA006E9731</string>
<key>history</key>
<array>
<string>8B914093213DCA1600BA6EEC</string>
- <string>8B913F89213DBC2200BA6EEC</string>
+ <string>8B914094213DCA1600BA6EEC</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 51}}</string>
+ <string>{{0, 0}, {603, 32}}</string>
<key>RubberWindowFrame</key>
<string>34 315 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>51pt</string>
+ <string>32pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>390pt</string>
+ <string>409pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,7 +394,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 363}}</string>
+ <string>{{10, 27}, {603, 382}}</string>
<key>RubberWindowFrame</key>
<string>34 315 810 487 0 0 1440 878 </string>
</dict>
@@ -478,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B914095213DCA1600BA6EEC</string>
+ <string>8B79385B21F575BA006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B914096213DCA1600BA6EEC</string>
+ <string>8B79385C21F575BA006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B914097213DCA1600BA6EEC</string>
+ <string>8B79385D21F575BA006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>557697558.29189706</real>
+ <real>569734586.84466803</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,7 +652,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B914098213DCA1600BA6EEC</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Ditherbox/Ditherbox.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/DoublePaul/DoublePaul.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/DoublePaul/DoublePaul.xcodeproj/christopherjohnson.pbxuser
index d51737f..87088d6 100755
--- a/plugins/MacVST/DoublePaul/DoublePaul.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/DoublePaul/DoublePaul.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,13 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460183;
- PBXWorkspaceStateSaveDate = 528460183;
+ PBXPerProjectTemplateStateSaveDate = 569734688;
+ PBXWorkspaceStateSaveDate = 569734688;
};
perUserProjectItems = {
- 8B9D6B781F7EE06F007AB60F /* PBXTextBookmark */ = 8B9D6B781F7EE06F007AB60F /* PBXTextBookmark */;
- 8B9D79991F7FA9C1007AB60F /* PBXTextBookmark */ = 8B9D79991F7FA9C1007AB60F /* PBXTextBookmark */;
+ 8B7938BA21F5762A006E9731 /* PBXTextBookmark */ = 8B7938BA21F5762A006E9731 /* PBXTextBookmark */;
+ 8B913F4F213DBA1400BA6EEC /* PBXTextBookmark */ = 8B913F4F213DBA1400BA6EEC /* PBXTextBookmark */;
+ 8B913F51213DBA1400BA6EEC /* PBXTextBookmark */ = 8B913F51213DBA1400BA6EEC /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -78,18 +79,18 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {747, 19864}}";
+ sepNavIntBoundsRect = "{{0, 0}, {747, 19877}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{0, 0}";
+ sepNavVisRange = "{107, 280}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* DoublePaulProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 3601}}";
+ sepNavIntBoundsRect = "{{0, 0}, {684, 3328}}";
sepNavSelRange = "{615, 0}";
- sepNavVisRange = "{445, 2248}";
- sepNavWindowFrame = "{{328, 47}, {895, 831}}";
+ sepNavVisRange = "{522, 172}";
+ sepNavWindowFrame = "{{15, 47}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
@@ -106,25 +107,35 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6B781F7EE06F007AB60F /* PBXTextBookmark */ = {
+ 8B7938BA21F5762A006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- name = "audioeffectx.cpp: 307";
+ fRef = 24D8286F09A914000093AEF8 /* DoublePaulProc.cpp */;
+ name = "DoublePaulProc.cpp: 25";
rLen = 0;
- rLoc = 10616;
+ rLoc = 615;
rType = 0;
- vrLen = 0;
- vrLoc = 0;
+ vrLen = 172;
+ vrLoc = 522;
};
- 8B9D79991F7FA9C1007AB60F /* PBXTextBookmark */ = {
+ 8B913F4F213DBA1400BA6EEC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 0;
- vrLoc = 0;
+ vrLen = 280;
+ vrLoc = 107;
+ };
+ 8B913F51213DBA1400BA6EEC /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* DoublePaulProc.cpp */;
+ name = "DoublePaulProc.cpp: 25";
+ rLen = 0;
+ rLoc = 615;
+ rType = 0;
+ vrLen = 291;
+ vrLoc = 522;
};
8D01CCC60486CAD60068D4B7 /* DoublePaul */ = {
activeExec = 0;
diff --git a/plugins/MacVST/DoublePaul/DoublePaul.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/DoublePaul/DoublePaul.xcodeproj/christopherjohnson.perspectivev3
index fe838cb..d88c235 100755
--- a/plugins/MacVST/DoublePaul/DoublePaul.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/DoublePaul/DoublePaul.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>318 298 810 487 0 0 1440 878 </string>
+ <string>73 294 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -339,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>audioeffectx.cpp</string>
+ <string>DoublePaulProc.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,14 +347,15 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>audioeffectx.cpp</string>
+ <string>DoublePaulProc.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D79991F7FA9C1007AB60F</string>
+ <string>8B7938BA21F5762A006E9731</string>
<key>history</key>
<array>
- <string>8B9D6B781F7EE06F007AB60F</string>
+ <string>8B913F4F213DBA1400BA6EEC</string>
+ <string>8B913F51213DBA1400BA6EEC</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
- <string>318 298 810 487 0 0 1440 878 </string>
+ <string>73 294 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +394,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
<key>RubberWindowFrame</key>
- <string>318 298 810 487 0 0 1440 878 </string>
+ <string>73 294 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -477,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D799A1F7FA9C1007AB60F</string>
+ <string>8B7938BB21F5762A006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D799B1F7FA9C1007AB60F</string>
+ <string>8B7938BC21F5762A006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D799C1F7FA9C1007AB60F</string>
+ <string>8B7938BD21F5762A006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460225.04550499</real>
+ <real>569734698.54333794</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,11 +652,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BB6DDFD1E5A8BDB00F3CD1D</string>
<string>/Users/christopherjohnson/Desktop/MacVST/DoublePaul/DoublePaul.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>318 298 810 487 0 0 1440 878 </string>
+ <string>73 294 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Drive/Drive.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Drive/Drive.xcodeproj/christopherjohnson.pbxuser
index 0d13528..a5f5df4 100755
--- a/plugins/MacVST/Drive/Drive.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Drive/Drive.xcodeproj/christopherjohnson.pbxuser
@@ -49,14 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460236;
- PBXWorkspaceStateSaveDate = 528460236;
+ PBXPerProjectTemplateStateSaveDate = 569734718;
+ PBXWorkspaceStateSaveDate = 569734718;
};
perUserProjectItems = {
+ 8B7938E821F5766D006E9731 /* PBXTextBookmark */ = 8B7938E821F5766D006E9731 /* PBXTextBookmark */;
+ 8B7938E921F5766D006E9731 /* XCBuildMessageTextBookmark */ = 8B7938E921F5766D006E9731 /* XCBuildMessageTextBookmark */;
+ 8B7938EA21F5766D006E9731 /* PBXTextBookmark */ = 8B7938EA21F5766D006E9731 /* PBXTextBookmark */;
8B93B4861DB80EC5000D49A5 /* PBXTextBookmark */ = 8B93B4861DB80EC5000D49A5 /* PBXTextBookmark */;
- 8B93B4C41DB816DE000D49A5 /* PBXTextBookmark */ = 8B93B4C41DB816DE000D49A5 /* PBXTextBookmark */;
- 8B9D6BA21F7EE49F007AB60F /* PBXTextBookmark */ = 8B9D6BA21F7EE49F007AB60F /* PBXTextBookmark */;
- 8B9D79AE1F7FA9E9007AB60F /* PBXTextBookmark */ = 8B9D79AE1F7FA9E9007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -64,17 +64,17 @@
};
2407DEB6089929BA00EB68BF /* Drive.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 2002}}";
- sepNavSelRange = "{459, 0}";
- sepNavVisRange = "{44, 296}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 2015}}";
+ sepNavSelRange = "{558, 0}";
+ sepNavVisRange = "{0, 1867}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Drive.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 1105}}";
- sepNavSelRange = "{2619, 0}";
- sepNavVisRange = "{2555, 79}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 962}}";
+ sepNavSelRange = "{2565, 0}";
+ sepNavVisRange = "{375, 2316}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
@@ -88,9 +88,9 @@
};
24D8286F09A914000093AEF8 /* DriveProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 4004}}";
- sepNavSelRange = "{6223, 1892}";
- sepNavVisRange = "{855, 2341}";
+ sepNavIntBoundsRect = "{{0, 0}, {691, 3393}}";
+ sepNavSelRange = "{3343, 0}";
+ sepNavVisRange = "{3322, 44}";
sepNavWindowFrame = "{{378, 39}, {895, 831}}";
};
};
@@ -108,45 +108,44 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B93B4861DB80EC5000D49A5 /* PBXTextBookmark */ = {
+ 8B7938E821F5766D006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 2407DEB6089929BA00EB68BF /* Drive.cpp */;
- name = "Drive.cpp: 18";
+ fRef = 245463B80991757100464AD3 /* Drive.h */;
+ name = "Drive.h: 69";
rLen = 0;
- rLoc = 459;
+ rLoc = 2630;
rType = 0;
- vrLen = 296;
- vrLoc = 44;
+ vrLen = 100;
+ vrLoc = 2568;
};
- 8B93B4C41DB816DE000D49A5 /* PBXTextBookmark */ = {
+ 8B7938E921F5766D006E9731 /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
+ comments = "'fpFlip' was not declared in this scope";
fRef = 24D8286F09A914000093AEF8 /* DriveProc.cpp */;
- name = "DriveProc.cpp: 142";
- rLen = 26;
- rLoc = 5927;
- rType = 0;
- vrLen = 200;
- vrLoc = 3942;
+ fallbackIsa = XCBuildMessageTextBookmark;
+ rLen = 1;
+ rLoc = 94;
+ rType = 1;
};
- 8B9D6BA21F7EE49F007AB60F /* PBXTextBookmark */ = {
+ 8B7938EA21F5766D006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* Drive.h */;
- name = "Drive.h: 68";
+ fRef = 24D8286F09A914000093AEF8 /* DriveProc.cpp */;
+ name = "DriveProc.cpp: 95";
rLen = 0;
- rLoc = 2619;
+ rLoc = 3343;
rType = 0;
- vrLen = 100;
- vrLoc = 2534;
+ vrLen = 44;
+ vrLoc = 3322;
};
- 8B9D79AE1F7FA9E9007AB60F /* PBXTextBookmark */ = {
+ 8B93B4861DB80EC5000D49A5 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* Drive.h */;
- name = "Drive.h: 68";
+ fRef = 2407DEB6089929BA00EB68BF /* Drive.cpp */;
+ name = "Drive.cpp: 18";
rLen = 0;
- rLoc = 2619;
+ rLoc = 459;
rType = 0;
- vrLen = 79;
- vrLoc = 2555;
+ vrLen = 296;
+ vrLoc = 44;
};
8D01CCC60486CAD60068D4B7 /* Drive */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Drive/Drive.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Drive/Drive.xcodeproj/christopherjohnson.perspectivev3
index c708842..1a33639 100755
--- a/plugins/MacVST/Drive/Drive.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Drive/Drive.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>7</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -339,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Drive.h</string>
+ <string>DriveProc.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,16 +347,16 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Drive.h</string>
+ <string>DriveProc.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D79AE1F7FA9E9007AB60F</string>
+ <string>8B7938EA21F5766D006E9731</string>
<key>history</key>
<array>
<string>8B93B4861DB80EC5000D49A5</string>
- <string>8B93B4C41DB816DE000D49A5</string>
- <string>8B9D6BA21F7EE49F007AB60F</string>
+ <string>8B7938E821F5766D006E9731</string>
+ <string>8B7938E921F5766D006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -370,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 86}}</string>
+ <string>{{0, 0}, {603, 69}}</string>
<key>RubberWindowFrame</key>
<string>332 336 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>86pt</string>
+ <string>69pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>355pt</string>
+ <string>372pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -395,9 +395,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 328}}</string>
- <key>RubberWindowFrame</key>
- <string>332 336 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 345}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -451,7 +449,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 345}}</string>
+ <key>RubberWindowFrame</key>
+ <string>332 336 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -479,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D79AF1F7FA9E9007AB60F</string>
+ <string>8B7938EB21F5766D006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D79B01F7FA9E9007AB60F</string>
+ <string>8B7938EC21F5766D006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D79B11F7FA9E9007AB60F</string>
+ <string>8B7938ED21F5766D006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -636,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460265.50522298</real>
+ <real>569734765.92090094</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -653,7 +653,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D79B21F7FA9E9007AB60F</string>
+ <string>8B7938EE21F5766D006E9731</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Drive/Drive.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Drive/source/Drive.cpp b/plugins/MacVST/Drive/source/Drive.cpp
index 35d0594..ac5f228 100755
--- a/plugins/MacVST/Drive/source/Drive.cpp
+++ b/plugins/MacVST/Drive/source/Drive.cpp
@@ -20,12 +20,9 @@ Drive::Drive(audioMasterCallback audioMaster) :
iirSampleBL = 0.0;
iirSampleAR = 0.0;
iirSampleBR = 0.0;
-
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Drive/source/Drive.h b/plugins/MacVST/Drive/source/Drive.h
index c7039c5..525a09e 100755
--- a/plugins/MacVST/Drive/source/Drive.h
+++ b/plugins/MacVST/Drive/source/Drive.h
@@ -55,17 +55,14 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double iirSampleAL;
double iirSampleBL;
double iirSampleAR;
double iirSampleBR;
-
+ bool fpFlip;
float A;
float B;
float C;
diff --git a/plugins/MacVST/Drive/source/DriveProc.cpp b/plugins/MacVST/Drive/source/DriveProc.cpp
index 3670e85..074ccfd 100755
--- a/plugins/MacVST/Drive/source/DriveProc.cpp
+++ b/plugins/MacVST/Drive/source/DriveProc.cpp
@@ -26,9 +26,6 @@ void Drive::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
double glitch = 0.60;
double out;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -95,6 +92,7 @@ void Drive::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
inputSampleR -= iirSampleBR;
}
//highpass section
+ fpFlip = !fpFlip;
if (inputSampleL > 1.0) inputSampleL = 1.0;
@@ -129,25 +127,14 @@ void Drive::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -178,9 +165,6 @@ void Drive::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
double glitch = 0.60;
double out;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -247,6 +231,7 @@ void Drive::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
inputSampleR -= iirSampleBR;
}
//highpass section
+ fpFlip = !fpFlip;
if (inputSampleL > 1.0) inputSampleL = 1.0;
@@ -281,25 +266,16 @@ void Drive::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/DrumSlam/DrumSlam.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/DrumSlam/DrumSlam.xcodeproj/christopherjohnson.pbxuser
index 37e894a..085419c 100755
--- a/plugins/MacVST/DrumSlam/DrumSlam.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/DrumSlam/DrumSlam.xcodeproj/christopherjohnson.pbxuser
@@ -51,8 +51,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 547825371;
- PBXWorkspaceStateSaveDate = 547825371;
+ PBXPerProjectTemplateStateSaveDate = 569734786;
+ PBXWorkspaceStateSaveDate = 569734786;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -60,17 +60,17 @@
};
2407DEB6089929BA00EB68BF /* DrumSlam.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 2067}}";
- sepNavSelRange = "{4174, 11}";
- sepNavVisRange = "{3277, 2173}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 2132}}";
+ sepNavSelRange = "{852, 0}";
+ sepNavVisRange = "{0, 1541}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* DrumSlam.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1209}}";
- sepNavSelRange = "{435, 0}";
- sepNavVisRange = "{663, 2389}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 1170}}";
+ sepNavSelRange = "{2870, 0}";
+ sepNavVisRange = "{655, 2346}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
diff --git a/plugins/MacVST/DrumSlam/DrumSlam.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/DrumSlam/DrumSlam.xcodeproj/christopherjohnson.perspectivev3
index 48ceca2..d1c4f80 100755
--- a/plugins/MacVST/DrumSlam/DrumSlam.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/DrumSlam/DrumSlam.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -298,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>7</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -321,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>28 345 810 487 0 0 1440 878 </string>
+ <string>176 340 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -360,7 +362,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>28 345 810 487 0 0 1440 878 </string>
+ <string>176 340 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -439,7 +441,7 @@
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
- <string>28 345 810 487 0 0 1440 878 </string>
+ <string>176 340 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -467,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B7E3F2420A72F9200482CB5</string>
+ <string>8B79390D21F576B0006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B7E3F2520A72F9200482CB5</string>
+ <string>8B79390E21F576B0006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B7E3F2620A72F9200482CB5</string>
+ <string>8B79390F21F576B0006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -644,7 +646,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>547827602.36658394</real>
+ <real>569734832.13053405</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -661,11 +663,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B7E3F2D20A72F9200482CB5</string>
- <string>/Users/christopherjohnson/Desktop/DrumSlam/DrumSlam.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/DrumSlam/DrumSlam.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>28 345 810 487 0 0 1440 878 </string>
+ <string>176 340 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/DrumSlam/source/DrumSlam.cpp b/plugins/MacVST/DrumSlam/source/DrumSlam.cpp
index 8a6ae7b..5b88619 100755
--- a/plugins/MacVST/DrumSlam/source/DrumSlam.cpp
+++ b/plugins/MacVST/DrumSlam/source/DrumSlam.cpp
@@ -35,12 +35,9 @@ DrumSlam::DrumSlam(audioMasterCallback audioMaster) :
iirSampleGR = 0.0;
iirSampleHR = 0.0;
lastSampleR = 0.0;
-
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/DrumSlam/source/DrumSlam.h b/plugins/MacVST/DrumSlam/source/DrumSlam.h
index 5ec2fda..418282d 100755
--- a/plugins/MacVST/DrumSlam/source/DrumSlam.h
+++ b/plugins/MacVST/DrumSlam/source/DrumSlam.h
@@ -54,11 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double iirSampleAL;
@@ -80,7 +77,7 @@ private:
double iirSampleGR;
double iirSampleHR;
double lastSampleR;
-
+ bool fpFlip;
float A;
float B;
float C;
diff --git a/plugins/MacVST/DrumSlam/source/DrumSlamProc.cpp b/plugins/MacVST/DrumSlam/source/DrumSlamProc.cpp
index 171b353..2e86142 100755
--- a/plugins/MacVST/DrumSlam/source/DrumSlamProc.cpp
+++ b/plugins/MacVST/DrumSlam/source/DrumSlamProc.cpp
@@ -25,8 +25,6 @@ void DrumSlam::processReplacing(float **inputs, float **outputs, VstInt32 sample
double out = B;
double wet = C;
double dry = 1.0 - wet;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
while (--sampleFrames >= 0)
{
@@ -125,6 +123,8 @@ void DrumSlam::processReplacing(float **inputs, float **outputs, VstInt32 sample
highSampleL = inputSampleL - iirSampleHL;
highSampleR = inputSampleR - iirSampleHR;
}
+ fpFlip = !fpFlip;
+
//generate the tone bands we're using
if (lowSampleL > 1.0) {lowSampleL = 1.0;}
if (lowSampleL < -1.0) {lowSampleL = -1.0;}
@@ -219,26 +219,14 @@ void DrumSlam::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- float fpTemp;
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -268,8 +256,6 @@ void DrumSlam::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double out = B;
double wet = C;
double dry = 1.0 - wet;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
while (--sampleFrames >= 0)
{
@@ -368,6 +354,8 @@ void DrumSlam::processDoubleReplacing(double **inputs, double **outputs, VstInt3
highSampleL = inputSampleL - iirSampleHL;
highSampleR = inputSampleR - iirSampleHR;
}
+ fpFlip = !fpFlip;
+
//generate the tone bands we're using
if (lowSampleL > 1.0) {lowSampleL = 1.0;}
if (lowSampleL < -1.0) {lowSampleL = -1.0;}
@@ -462,26 +450,16 @@ void DrumSlam::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- double fpTemp;
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/DubCenter/DubCenter.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/DubCenter/DubCenter.xcodeproj/christopherjohnson.pbxuser
index 1ef293f..540fd54 100755
--- a/plugins/MacVST/DubCenter/DubCenter.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/DubCenter/DubCenter.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 561848737;
- PBXWorkspaceStateSaveDate = 561848737;
- };
- perUserProjectItems = {
- 8B560C61217D21A400D3BC37 /* PBXBookmark */ = 8B560C61217D21A400D3BC37 /* PBXBookmark */;
- 8B560C71217D21F300D3BC37 /* PBXTextBookmark */ = 8B560C71217D21F300D3BC37 /* PBXTextBookmark */;
+ PBXPerProjectTemplateStateSaveDate = 569734854;
+ PBXWorkspaceStateSaveDate = 569734854;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -86,9 +82,9 @@
};
24D8286F09A914000093AEF8 /* DubCenterProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 8359}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 8086}}";
sepNavSelRange = "{6339, 0}";
- sepNavVisRange = "{5917, 3197}";
+ sepNavVisRange = "{5899, 3296}";
sepNavWindowFrame = "{{45, 47}, {895, 831}}";
};
};
@@ -106,20 +102,6 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B560C61217D21A400D3BC37 /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 24D8286F09A914000093AEF8 /* DubCenterProc.cpp */;
- };
- 8B560C71217D21F300D3BC37 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* DubCenterProc.cpp */;
- name = "DubCenterProc.cpp: 189";
- rLen = 0;
- rLoc = 6339;
- rType = 0;
- vrLen = 3197;
- vrLoc = 5917;
- };
8D01CCC60486CAD60068D4B7 /* DubCenter */ = {
activeExec = 0;
};
diff --git a/plugins/MacVST/DubCenter/DubCenter.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/DubCenter/DubCenter.xcodeproj/christopherjohnson.perspectivev3
index 7593523..1b66276 100755
--- a/plugins/MacVST/DubCenter/DubCenter.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/DubCenter/DubCenter.xcodeproj/christopherjohnson.perspectivev3
@@ -222,48 +222,7 @@
</dict>
</array>
<key>OpenEditors</key>
- <array>
- <dict>
- <key>Content</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8B560C6F217D21F300D3BC37</string>
- <key>PBXProjectModuleLabel</key>
- <string>DubCenterProc.cpp</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8B560C70217D21F300D3BC37</string>
- <key>PBXProjectModuleLabel</key>
- <string>DubCenterProc.cpp</string>
- <key>_historyCapacity</key>
- <integer>0</integer>
- <key>bookmark</key>
- <string>8B560C71217D21F300D3BC37</string>
- <key>history</key>
- <array>
- <string>8B560C61217D21A400D3BC37</string>
- </array>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
- <key>StatusBarVisibility</key>
- <true/>
- </dict>
- <key>Geometry</key>
- <dict>
- <key>Frame</key>
- <string>{{0, 20}, {895, 734}}</string>
- <key>PBXModuleWindowStatusBarHidden2</key>
- <false/>
- <key>RubberWindowFrame</key>
- <string>45 103 895 775 0 0 1440 878 </string>
- </dict>
- </dict>
- </array>
+ <array/>
<key>PerspectiveWidths</key>
<array>
<integer>810</integer>
@@ -510,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B560C6C217D21F300D3BC37</string>
+ <string>8B79392221F576D2006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B560C6D217D21F300D3BC37</string>
+ <string>8B79392321F576D2006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B560C6E217D21F300D3BC37</string>
+ <string>8B79392421F576D2006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -667,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>561848819.78781903</real>
+ <real>569734870.07559299</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -685,7 +644,6 @@
<key>WindowOrderList</key>
<array>
<string>/Users/christopherjohnson/Desktop/MacVST/DubCenter/DubCenter.xcodeproj</string>
- <string>8B560C6F217D21F300D3BC37</string>
</array>
<key>WindowString</key>
<string>28 291 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/DubCenter/source/DubCenterProc.cpp b/plugins/MacVST/DubCenter/source/DubCenterProc.cpp
index 75c162b..b0c49a3 100755
--- a/plugins/MacVST/DubCenter/source/DubCenterProc.cpp
+++ b/plugins/MacVST/DubCenter/source/DubCenterProc.cpp
@@ -306,18 +306,14 @@ void DubCenter::processReplacing(float **inputs, float **outputs, VstInt32 sampl
bflip++;
if (bflip < 1 || bflip > 3) bflip = 1;
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -327,12 +323,6 @@ void DubCenter::processReplacing(float **inputs, float **outputs, VstInt32 sampl
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void DubCenter::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -633,18 +623,16 @@ void DubCenter::processDoubleReplacing(double **inputs, double **outputs, VstInt
bflip++;
if (bflip < 1 || bflip > 3) bflip = 1;
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -654,10 +642,4 @@ void DubCenter::processDoubleReplacing(double **inputs, double **outputs, VstInt
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/DubSub/DubSub.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/DubSub/DubSub.xcodeproj/christopherjohnson.pbxuser
index d93b3f3..759f11f 100755
--- a/plugins/MacVST/DubSub/DubSub.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/DubSub/DubSub.xcodeproj/christopherjohnson.pbxuser
@@ -49,14 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 560565932;
- PBXWorkspaceStateSaveDate = 560565932;
+ PBXPerProjectTemplateStateSaveDate = 569734904;
+ PBXWorkspaceStateSaveDate = 569734904;
};
perUserProjectItems = {
- 8B42FC0221604E960092969A /* PBXTextBookmark */ = 8B42FC0221604E960092969A /* PBXTextBookmark */;
- 8B42FC0321604E960092969A /* PBXTextBookmark */ = 8B42FC0321604E960092969A /* PBXTextBookmark */;
- 8B42FE27216978EE0092969A /* PBXTextBookmark */ = 8B42FE27216978EE0092969A /* PBXTextBookmark */;
- 8B42FE6F216992760092969A /* PBXTextBookmark */ = 8B42FE6F216992760092969A /* PBXTextBookmark */;
+ 8B15DBE121788E19007AD769 /* PBXTextBookmark */ = 8B15DBE121788E19007AD769 /* PBXTextBookmark */;
+ 8B15DC4F21789111007AD769 /* PBXTextBookmark */ = 8B15DC4F21789111007AD769 /* PBXTextBookmark */;
+ 8B15DC6F217891D4007AD769 /* PBXTextBookmark */ = 8B15DC6F217891D4007AD769 /* PBXTextBookmark */;
+ 8B79394121F57705006E9731 /* PBXTextBookmark */ = 8B79394121F57705006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -64,18 +64,18 @@
};
2407DEB6089929BA00EB68BF /* DubSub.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 3237}}";
- sepNavSelRange = "{7461, 0}";
- sepNavVisRange = "{6004, 3058}";
- sepNavWindowFrame = "{{4, 38}, {895, 831}}";
+ sepNavIntBoundsRect = "{{0, 0}, {712, 3575}}";
+ sepNavSelRange = "{8745, 0}";
+ sepNavVisRange = "{44, 171}";
+ sepNavWindowFrame = "{{705, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* DubSub.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 2314}}";
- sepNavSelRange = "{0, 0}";
- sepNavVisRange = "{0, 99}";
- sepNavWindowFrame = "{{20, 47}, {895, 831}}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 2340}}";
+ sepNavSelRange = "{2508, 2128}";
+ sepNavVisRange = "{3746, 901}";
+ sepNavWindowFrame = "{{659, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
@@ -88,10 +88,10 @@
};
24D8286F09A914000093AEF8 /* DubSubProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 10296}}";
- sepNavSelRange = "{30534, 0}";
- sepNavVisRange = "{29455, 2823}";
- sepNavWindowFrame = "{{229, 47}, {895, 831}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 10985}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 0}";
+ sepNavWindowFrame = "{{563, 47}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
@@ -108,45 +108,45 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B42FC0221604E960092969A /* PBXTextBookmark */ = {
+ 8B15DBE121788E19007AD769 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 2407DEB6089929BA00EB68BF /* DubSub.cpp */;
- name = "DubSub.cpp: 142";
+ fRef = 245463B80991757100464AD3 /* DubSub.h */;
+ name = "DubSub.h: 1";
rLen = 0;
- rLoc = 8745;
+ rLoc = 0;
rType = 0;
- vrLen = 281;
- vrLoc = 1938;
+ vrLen = 66;
+ vrLoc = 0;
};
- 8B42FC0321604E960092969A /* PBXTextBookmark */ = {
+ 8B15DC4F21789111007AD769 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* DubSubProc.cpp */;
name = "DubSubProc.cpp: 1";
rLen = 0;
rLoc = 0;
rType = 0;
- vrLen = 208;
+ vrLen = 0;
vrLoc = 0;
};
- 8B42FE27216978EE0092969A /* PBXTextBookmark */ = {
+ 8B15DC6F217891D4007AD769 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* DubSub.h */;
- name = "DubSub.h: 1";
+ fRef = 2407DEB6089929BA00EB68BF /* DubSub.cpp */;
+ name = "DubSub.cpp: 267";
rLen = 0;
- rLoc = 0;
+ rLoc = 8745;
rType = 0;
- vrLen = 208;
- vrLoc = 0;
+ vrLen = 172;
+ vrLoc = 44;
};
- 8B42FE6F216992760092969A /* PBXTextBookmark */ = {
+ 8B79394121F57705006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* DubSub.h */;
- name = "DubSub.h: 1";
+ fRef = 2407DEB6089929BA00EB68BF /* DubSub.cpp */;
+ name = "DubSub.cpp: 267";
rLen = 0;
- rLoc = 0;
+ rLoc = 8745;
rType = 0;
- vrLen = 99;
- vrLoc = 0;
+ vrLen = 171;
+ vrLoc = 44;
};
8D01CCC60486CAD60068D4B7 /* DubSub */ = {
activeExec = 0;
diff --git a/plugins/MacVST/DubSub/DubSub.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/DubSub/DubSub.xcodeproj/christopherjohnson.perspectivev3
index 681760b..f2fabd2 100755
--- a/plugins/MacVST/DubSub/DubSub.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/DubSub/DubSub.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>86 201 810 487 0 0 1440 878 </string>
+ <string>613 292 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -339,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>DubSub.h</string>
+ <string>DubSub.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,16 +347,16 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>DubSub.h</string>
+ <string>DubSub.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B42FE6F216992760092969A</string>
+ <string>8B79394121F57705006E9731</string>
<key>history</key>
<array>
- <string>8B42FC0221604E960092969A</string>
- <string>8B42FC0321604E960092969A</string>
- <string>8B42FE27216978EE0092969A</string>
+ <string>8B15DBE121788E19007AD769</string>
+ <string>8B15DC4F21789111007AD769</string>
+ <string>8B15DC6F217891D4007AD769</string>
</array>
</dict>
<key>SplitCount</key>
@@ -370,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 69}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
- <string>86 201 810 487 0 0 1440 878 </string>
+ <string>613 292 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>69pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>372pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -395,9 +395,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 345}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
<key>RubberWindowFrame</key>
- <string>86 201 810 487 0 0 1440 878 </string>
+ <string>613 292 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -479,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B42FE70216992760092969A</string>
+ <string>8B79394221F57705006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B42FE71216992760092969A</string>
+ <string>8B79394321F57705006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B42FE72216992760092969A</string>
+ <string>8B79394421F57705006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -636,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>560566902.22521102</real>
+ <real>569734917.70818102</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -656,7 +656,7 @@
<string>/Users/christopherjohnson/Desktop/MacVST/DubSub/DubSub.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>86 201 810 487 0 0 1440 878 </string>
+ <string>613 292 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/DubSub/source/DubSubProc.cpp b/plugins/MacVST/DubSub/source/DubSubProc.cpp
index 037480c..7a0349d 100755
--- a/plugins/MacVST/DubSub/source/DubSubProc.cpp
+++ b/plugins/MacVST/DubSub/source/DubSubProc.cpp
@@ -392,18 +392,14 @@ void DubSub::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
bflip++;
if (bflip < 1 || bflip > 3) bflip = 1;
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -413,12 +409,6 @@ void DubSub::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void DubSub::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -805,18 +795,16 @@ void DubSub::processDoubleReplacing(double **inputs, double **outputs, VstInt32
bflip++;
if (bflip < 1 || bflip > 3) bflip = 1;
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -826,10 +814,4 @@ void DubSub::processDoubleReplacing(double **inputs, double **outputs, VstInt32
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/DustBunny/DustBunny.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/DustBunny/DustBunny.xcodeproj/christopherjohnson.pbxuser
index 0ecdf87..d0f3d39 100755
--- a/plugins/MacVST/DustBunny/DustBunny.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/DustBunny/DustBunny.xcodeproj/christopherjohnson.pbxuser
@@ -51,11 +51,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460275;
- PBXWorkspaceStateSaveDate = 528460275;
+ PBXPerProjectTemplateStateSaveDate = 569734942;
+ PBXWorkspaceStateSaveDate = 569734942;
};
perUserProjectItems = {
- 8B9D6BC21F7EE4EE007AB60F /* PBXTextBookmark */ = 8B9D6BC21F7EE4EE007AB60F /* PBXTextBookmark */;
+ 8B79396121F5772F006E9731 /* PBXTextBookmark */ = 8B79396121F5772F006E9731 /* PBXTextBookmark */;
8B9D79DA1F7FAA9D007AB60F /* PBXTextBookmark */ = 8B9D79DA1F7FAA9D007AB60F /* PBXTextBookmark */;
8BCF31DB1F4E436800632CB6 /* PBXTextBookmark */ = 8BCF31DB1F4E436800632CB6 /* PBXTextBookmark */;
};
@@ -65,9 +65,9 @@
};
2407DEB6089929BA00EB68BF /* DustBunny.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {656, 1612}}";
+ sepNavIntBoundsRect = "{{0, 0}, {656, 1638}}";
sepNavSelRange = "{1342, 0}";
- sepNavVisRange = "{1146, 454}";
+ sepNavVisRange = "{1232, 294}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
@@ -109,15 +109,15 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6BC21F7EE4EE007AB60F /* PBXTextBookmark */ = {
+ 8B79396121F5772F006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* DustBunny.cpp */;
name = "DustBunny.cpp: 30";
rLen = 0;
rLoc = 1342;
rType = 0;
- vrLen = 454;
- vrLoc = 1146;
+ vrLen = 294;
+ vrLoc = 1232;
};
8B9D79DA1F7FAA9D007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/DustBunny/DustBunny.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/DustBunny/DustBunny.xcodeproj/christopherjohnson.perspectivev3
index e122df8..8d8c720 100755
--- a/plugins/MacVST/DustBunny/DustBunny.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/DustBunny/DustBunny.xcodeproj/christopherjohnson.perspectivev3
@@ -351,11 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D79DA1F7FAA9D007AB60F</string>
+ <string>8B79396121F5772F006E9731</string>
<key>history</key>
<array>
<string>8BCF31DB1F4E436800632CB6</string>
- <string>8B9D6BC21F7EE4EE007AB60F</string>
+ <string>8B9D79DA1F7FAA9D007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 102}}</string>
+ <string>{{0, 0}, {603, 86}}</string>
<key>RubberWindowFrame</key>
<string>354 325 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>102pt</string>
+ <string>86pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>339pt</string>
+ <string>355pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,7 +394,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 312}}</string>
+ <string>{{10, 27}, {603, 328}}</string>
<key>RubberWindowFrame</key>
<string>354 325 810 487 0 0 1440 878 </string>
</dict>
@@ -478,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D79DB1F7FAA9D007AB60F</string>
+ <string>8B79396221F5772F006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D79DC1F7FAA9D007AB60F</string>
+ <string>8B79396321F5772F006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D79DD1F7FAA9D007AB60F</string>
+ <string>8B79396421F5772F006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -655,7 +655,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460445.29056901</real>
+ <real>569734959.42124605</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -672,7 +672,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D79DE1F7FAA9D007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/DustBunny/DustBunny.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/EQ/EQ.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/EQ/EQ.xcodeproj/christopherjohnson.pbxuser
index a376012..b00c262 100755
--- a/plugins/MacVST/EQ/EQ.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/EQ/EQ.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 541887553;
- PBXWorkspaceStateSaveDate = 541887553;
+ PBXPerProjectTemplateStateSaveDate = 569735191;
+ PBXWorkspaceStateSaveDate = 569735191;
};
perUserProjectItems = {
- 8B181AF7204C941100516BEE /* XCBuildMessageTextBookmark */ = 8B181AF7204C941100516BEE /* XCBuildMessageTextBookmark */;
8B181AF8204C941100516BEE /* PBXTextBookmark */ = 8B181AF8204C941100516BEE /* PBXTextBookmark */;
+ 8B793A0321F57823006E9731 /* PBXTextBookmark */ = 8B793A0321F57823006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -78,9 +78,9 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19747}}";
+ sepNavIntBoundsRect = "{{0, 0}, {838, 19877}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10459, 399}";
+ sepNavVisRange = "{10459, 280}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
@@ -106,23 +106,24 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B181AF7204C941100516BEE /* XCBuildMessageTextBookmark */ = {
+ 8B181AF8204C941100516BEE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "Deprecated conversion from string constant to 'char*'";
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- fallbackIsa = XCBuildMessageTextBookmark;
- rLen = 1;
- rLoc = 306;
- rType = 1;
+ name = "audioeffectx.cpp: 307";
+ rLen = 0;
+ rLoc = 10616;
+ rType = 0;
+ vrLen = 399;
+ vrLoc = 10459;
};
- 8B181AF8204C941100516BEE /* PBXTextBookmark */ = {
+ 8B793A0321F57823006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 399;
+ vrLen = 280;
vrLoc = 10459;
};
8D01CCC60486CAD60068D4B7 /* EQ */ = {
diff --git a/plugins/MacVST/EQ/EQ.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/EQ/EQ.xcodeproj/christopherjohnson.perspectivev3
index b6f9507..708c37d 100755
--- a/plugins/MacVST/EQ/EQ.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/EQ/EQ.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -349,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B181AF8204C941100516BEE</string>
+ <string>8B793A0321F57823006E9731</string>
<key>history</key>
<array>
- <string>8B181AF7204C941100516BEE</string>
+ <string>8B181AF8204C941100516BEE</string>
</array>
</dict>
<key>SplitCount</key>
@@ -366,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>15 373 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -391,7 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>15 373 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -446,8 +450,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>15 373 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -475,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B181AAB204C8C4800516BEE</string>
+ <string>8B793A0421F57823006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B181AAC204C8C4800516BEE</string>
+ <string>8B793A0521F57823006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B181AAD204C8C4800516BEE</string>
+ <string>8B793A0621F57823006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -632,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>541889553.15927601</real>
+ <real>569735203.85904706</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -649,8 +651,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B181AF9204C941100516BEE</string>
- <string>/Users/christopherjohnson/Desktop/EQ/EQ.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/EQ/EQ.xcodeproj</string>
</array>
<key>WindowString</key>
<string>15 373 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/EQ/source/EQ.cpp b/plugins/MacVST/EQ/source/EQ.cpp
index ebdadaa..f2e4e01 100755
--- a/plugins/MacVST/EQ/source/EQ.cpp
+++ b/plugins/MacVST/EQ/source/EQ.cpp
@@ -111,11 +111,8 @@ EQ::EQ(audioMasterCallback audioMaster) :
flip = false;
flipthree = 0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/EQ/source/EQ.h b/plugins/MacVST/EQ/source/EQ.h
index 4317a2d..26fade4 100755
--- a/plugins/MacVST/EQ/source/EQ.h
+++ b/plugins/MacVST/EQ/source/EQ.h
@@ -59,11 +59,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double lastSampleL;
diff --git a/plugins/MacVST/EQ/source/EQProc.cpp b/plugins/MacVST/EQ/source/EQProc.cpp
index 6d994a9..917dc7e 100755
--- a/plugins/MacVST/EQ/source/EQProc.cpp
+++ b/plugins/MacVST/EQ/source/EQProc.cpp
@@ -20,9 +20,6 @@ void EQ::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames
overallscale = getSampleRate();
compscale = compscale * overallscale;
//compscale is the one that's 1 or something like 2.2 for 96K rates
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -434,25 +431,14 @@ void EQ::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames
inputSampleR *= outputgain;
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -477,9 +463,6 @@ void EQ::processDoubleReplacing(double **inputs, double **outputs, VstInt32 samp
overallscale = getSampleRate();
compscale = compscale * overallscale;
//compscale is the one that's 1 or something like 2.2 for 96K rates
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -891,25 +874,16 @@ void EQ::processDoubleReplacing(double **inputs, double **outputs, VstInt32 samp
inputSampleR *= outputgain;
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/EdIsDim/EdIsDim.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/EdIsDim/EdIsDim.xcodeproj/christopherjohnson.pbxuser
index 594376e..83c37d0 100755
--- a/plugins/MacVST/EdIsDim/EdIsDim.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/EdIsDim/EdIsDim.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460458;
- PBXWorkspaceStateSaveDate = 528460458;
+ PBXPerProjectTemplateStateSaveDate = 569735013;
+ PBXWorkspaceStateSaveDate = 569735013;
};
perUserProjectItems = {
- 8B9D6BE11F7EE521007AB60F /* PBXTextBookmark */ = 8B9D6BE11F7EE521007AB60F /* PBXTextBookmark */;
+ 8B79398121F57771006E9731 /* PBXTextBookmark */ = 8B79398121F57771006E9731 /* PBXTextBookmark */;
8B9D79F01F7FAAB9007AB60F /* PBXTextBookmark */ = 8B9D79F01F7FAAB9007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -106,7 +106,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6BE11F7EE521007AB60F /* PBXTextBookmark */ = {
+ 8B79398121F57771006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
diff --git a/plugins/MacVST/EdIsDim/EdIsDim.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/EdIsDim/EdIsDim.xcodeproj/christopherjohnson.perspectivev3
index cf4c5fa..0d8290a 100755
--- a/plugins/MacVST/EdIsDim/EdIsDim.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/EdIsDim/EdIsDim.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>108 310 810 487 0 0 1440 878 </string>
+ <string>267 298 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D79F01F7FAAB9007AB60F</string>
+ <string>8B79398121F57771006E9731</string>
<key>history</key>
<array>
- <string>8B9D6BE11F7EE521007AB60F</string>
+ <string>8B9D79F01F7FAAB9007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -370,7 +370,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>108 310 810 487 0 0 1440 878 </string>
+ <string>267 298 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -395,7 +395,7 @@
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
- <string>108 310 810 487 0 0 1440 878 </string>
+ <string>267 298 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D79F11F7FAAB9007AB60F</string>
+ <string>8B79398221F57771006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D79F21F7FAAB9007AB60F</string>
+ <string>8B79398321F57771006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D79F31F7FAAB9007AB60F</string>
+ <string>8B79398421F57771006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460473.03459197</real>
+ <real>569735025.80681503</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,11 +651,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D79F41F7FAAB9007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/EdIsDim/EdIsDim.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>108 310 810 487 0 0 1440 878 </string>
+ <string>267 298 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/EdIsDim/source/EdIsDim.cpp b/plugins/MacVST/EdIsDim/source/EdIsDim.cpp
index 6af5dd4..eb6abd3 100755
--- a/plugins/MacVST/EdIsDim/source/EdIsDim.cpp
+++ b/plugins/MacVST/EdIsDim/source/EdIsDim.cpp
@@ -13,11 +13,8 @@ EdIsDim::EdIsDim(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/EdIsDim/source/EdIsDim.h b/plugins/MacVST/EdIsDim/source/EdIsDim.h
index 8c51883..4f62705 100755
--- a/plugins/MacVST/EdIsDim/source/EdIsDim.h
+++ b/plugins/MacVST/EdIsDim/source/EdIsDim.h
@@ -52,11 +52,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/EdIsDim/source/EdIsDimProc.cpp b/plugins/MacVST/EdIsDim/source/EdIsDimProc.cpp
index 8ee927d..0d033eb 100755
--- a/plugins/MacVST/EdIsDim/source/EdIsDimProc.cpp
+++ b/plugins/MacVST/EdIsDim/source/EdIsDimProc.cpp
@@ -14,9 +14,6 @@ void EdIsDim::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -75,25 +72,14 @@ void EdIsDim::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
mid = (inputSampleL+inputSampleR)/2.0;
side = (inputSampleL-inputSampleR)/2.0;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = mid;
- fpNShapeLA = (fpNShapeLA*fpOld)+((mid-fpTemp)*fpNew);
- mid += fpNShapeLA;
- fpTemp = side;
- fpNShapeRA = (fpNShapeRA*fpOld)+((side-fpTemp)*fpNew);
- side += fpNShapeRA;
- }
- else {
- fpTemp = mid;
- fpNShapeLB = (fpNShapeLB*fpOld)+((mid-fpTemp)*fpNew);
- mid += fpNShapeLB;
- fpTemp = side;
- fpNShapeRB = (fpNShapeRB*fpOld)+((side-fpTemp)*fpNew);
- side += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)mid, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ mid += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)side, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ side += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = mid;
*out2 = side;
@@ -112,9 +98,6 @@ void EdIsDim::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -174,25 +157,16 @@ void EdIsDim::processDoubleReplacing(double **inputs, double **outputs, VstInt32
mid = (inputSampleL+inputSampleR)/2.0;
side = (inputSampleL-inputSampleR)/2.0;
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = mid;
- fpNShapeLA = (fpNShapeLA*fpOld)+((mid-fpTemp)*fpNew);
- mid += fpNShapeLA;
- fpTemp = side;
- fpNShapeRA = (fpNShapeRA*fpOld)+((side-fpTemp)*fpNew);
- side += fpNShapeRA;
- }
- else {
- fpTemp = mid;
- fpNShapeLB = (fpNShapeLB*fpOld)+((mid-fpTemp)*fpNew);
- mid += fpNShapeLB;
- fpTemp = side;
- fpNShapeRB = (fpNShapeRB*fpOld)+((side-fpTemp)*fpNew);
- side += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)mid, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ mid += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)side, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ side += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = mid;
*out2 = side;
diff --git a/plugins/MacVST/ElectroHat/ElectroHat.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ElectroHat/ElectroHat.xcodeproj/christopherjohnson.pbxuser
index 002e6ef..bf3d2b1 100755
--- a/plugins/MacVST/ElectroHat/ElectroHat.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ElectroHat/ElectroHat.xcodeproj/christopherjohnson.pbxuser
@@ -49,15 +49,13 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 541289959;
- PBXWorkspaceStateSaveDate = 541289959;
+ PBXPerProjectTemplateStateSaveDate = 569735050;
+ PBXWorkspaceStateSaveDate = 569735050;
};
perUserProjectItems = {
+ 8B7939A121F57797006E9731 /* PBXTextBookmark */ = 8B7939A121F57797006E9731 /* PBXTextBookmark */;
8BC009F720436BB500304BC7 /* PBXTextBookmark */ = 8BC009F720436BB500304BC7 /* PBXTextBookmark */;
- 8BC009F920436BB500304BC7 /* PBXTextBookmark */ = 8BC009F920436BB500304BC7 /* PBXTextBookmark */;
- 8BC00A0C20436DEA00304BC7 /* PBXBookmark */ = 8BC00A0C20436DEA00304BC7 /* PBXBookmark */;
8BC00A1E20436E0500304BC7 /* PBXTextBookmark */ = 8BC00A1E20436E0500304BC7 /* PBXTextBookmark */;
- 8BC00A1F20436E0500304BC7 /* PBXTextBookmark */ = 8BC00A1F20436E0500304BC7 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -89,9 +87,9 @@
};
24D8286F09A914000093AEF8 /* ElectroHatProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 3952}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 3705}}";
sepNavSelRange = "{5210, 0}";
- sepNavVisRange = "{5074, 138}";
+ sepNavVisRange = "{5118, 103}";
sepNavWindowFrame = "{{57, 47}, {895, 831}}";
};
};
@@ -109,6 +107,16 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
+ 8B7939A121F57797006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* ElectroHatProc.cpp */;
+ name = "ElectroHatProc.cpp: 182";
+ rLen = 0;
+ rLoc = 5210;
+ rType = 0;
+ vrLen = 103;
+ vrLoc = 5118;
+ };
8BC009F720436BB500304BC7 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* ElectroHat.cpp */;
@@ -119,20 +127,6 @@
vrLen = 124;
vrLoc = 508;
};
- 8BC009F920436BB500304BC7 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* ElectroHatProc.cpp */;
- name = "ElectroHatProc.cpp: 183";
- rLen = 0;
- rLoc = 5210;
- rType = 0;
- vrLen = 158;
- vrLoc = 5057;
- };
- 8BC00A0C20436DEA00304BC7 /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 24D8286F09A914000093AEF8 /* ElectroHatProc.cpp */;
- };
8BC00A1E20436E0500304BC7 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ElectroHatProc.cpp */;
@@ -143,16 +137,6 @@
vrLen = 138;
vrLoc = 5074;
};
- 8BC00A1F20436E0500304BC7 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* ElectroHatProc.cpp */;
- name = "ElectroHatProc.cpp: 111";
- rLen = 0;
- rLoc = 3370;
- rType = 0;
- vrLen = 1769;
- vrLoc = 2424;
- };
8D01CCC60486CAD60068D4B7 /* ElectroHat */ = {
activeExec = 0;
};
diff --git a/plugins/MacVST/ElectroHat/ElectroHat.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ElectroHat/ElectroHat.xcodeproj/christopherjohnson.perspectivev3
index fa3c51a..c845be7 100755
--- a/plugins/MacVST/ElectroHat/ElectroHat.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ElectroHat/ElectroHat.xcodeproj/christopherjohnson.perspectivev3
@@ -222,48 +222,7 @@
</dict>
</array>
<key>OpenEditors</key>
- <array>
- <dict>
- <key>Content</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8BC00A1120436E0500304BC7</string>
- <key>PBXProjectModuleLabel</key>
- <string>ElectroHatProc.cpp</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8BC00A1220436E0500304BC7</string>
- <key>PBXProjectModuleLabel</key>
- <string>ElectroHatProc.cpp</string>
- <key>_historyCapacity</key>
- <integer>0</integer>
- <key>bookmark</key>
- <string>8BC00A1F20436E0500304BC7</string>
- <key>history</key>
- <array>
- <string>8BC00A0C20436DEA00304BC7</string>
- </array>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
- <key>StatusBarVisibility</key>
- <true/>
- </dict>
- <key>Geometry</key>
- <dict>
- <key>Frame</key>
- <string>{{0, 20}, {895, 734}}</string>
- <key>PBXModuleWindowStatusBarHidden2</key>
- <false/>
- <key>RubberWindowFrame</key>
- <string>57 103 895 775 0 0 1440 878 </string>
- </dict>
- </dict>
- </array>
+ <array/>
<key>PerspectiveWidths</key>
<array>
<integer>810</integer>
@@ -392,11 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BC00A1E20436E0500304BC7</string>
+ <string>8B7939A121F57797006E9731</string>
<key>history</key>
<array>
<string>8BC009F720436BB500304BC7</string>
- <string>8BC009F920436BB500304BC7</string>
+ <string>8BC00A1E20436E0500304BC7</string>
</array>
</dict>
<key>SplitCount</key>
@@ -410,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 102}}</string>
+ <string>{{0, 0}, {603, 86}}</string>
<key>RubberWindowFrame</key>
<string>35 342 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>102pt</string>
+ <string>86pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>339pt</string>
+ <string>355pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -435,7 +394,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 312}}</string>
+ <string>{{10, 27}, {603, 328}}</string>
<key>RubberWindowFrame</key>
<string>35 342 810 487 0 0 1440 878 </string>
</dict>
@@ -519,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BC00A0E20436E0500304BC7</string>
+ <string>8B7939A221F57797006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BC00A0F20436E0500304BC7</string>
+ <string>8B7939A321F57797006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BC00A1020436E0500304BC7</string>
+ <string>8B7939A421F57797006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -676,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>541289989.72780704</real>
+ <real>569735063.85601294</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -694,7 +653,6 @@
<key>WindowOrderList</key>
<array>
<string>/Users/christopherjohnson/Desktop/MacVST/ElectroHat/ElectroHat.xcodeproj</string>
- <string>8BC00A1120436E0500304BC7</string>
</array>
<key>WindowString</key>
<string>35 342 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/ElectroHat/source/ElectroHat.cpp b/plugins/MacVST/ElectroHat/source/ElectroHat.cpp
index 33d1058..6be41e4 100755
--- a/plugins/MacVST/ElectroHat/source/ElectroHat.cpp
+++ b/plugins/MacVST/ElectroHat/source/ElectroHat.cpp
@@ -25,11 +25,8 @@ ElectroHat::ElectroHat(audioMasterCallback audioMaster) :
lok = 0;
flip = true;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/ElectroHat/source/ElectroHat.h b/plugins/MacVST/ElectroHat/source/ElectroHat.h
index e8aa325..85315cd 100755
--- a/plugins/MacVST/ElectroHat/source/ElectroHat.h
+++ b/plugins/MacVST/ElectroHat/source/ElectroHat.h
@@ -56,11 +56,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double storedSampleL;
diff --git a/plugins/MacVST/ElectroHat/source/ElectroHatProc.cpp b/plugins/MacVST/ElectroHat/source/ElectroHatProc.cpp
index 69b1a00..ee5a307 100755
--- a/plugins/MacVST/ElectroHat/source/ElectroHatProc.cpp
+++ b/plugins/MacVST/ElectroHat/source/ElectroHatProc.cpp
@@ -20,9 +20,6 @@ void ElectroHat::processReplacing(float **inputs, float **outputs, VstInt32 samp
bool highSample = false;
if (getSampleRate() > 64000) highSample = true;
//we will go to another dither for 88 and 96K
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double drySampleL;
double drySampleR;
@@ -126,25 +123,14 @@ void ElectroHat::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -169,9 +155,6 @@ void ElectroHat::processDoubleReplacing(double **inputs, double **outputs, VstIn
bool highSample = false;
if (getSampleRate() > 64000) highSample = true;
//we will go to another dither for 88 and 96K
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double drySampleL;
double drySampleR;
@@ -275,25 +258,16 @@ void ElectroHat::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Energy/Energy.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Energy/Energy.xcodeproj/christopherjohnson.pbxuser
index 04d99ae..92d94ca 100755
--- a/plugins/MacVST/Energy/Energy.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Energy/Energy.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* Energy */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
breakpoints = (
);
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
@@ -51,12 +51,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 547867604;
- PBXWorkspaceStateSaveDate = 547867604;
- };
- perUserProjectItems = {
- 8B7E3F4220A7CBD700482CB5 /* PBXBookmark */ = 8B7E3F4220A7CBD700482CB5 /* PBXBookmark */;
- 8B7E3F5620A7CBF900482CB5 /* PBXTextBookmark */ = 8B7E3F5620A7CBF900482CB5 /* PBXTextBookmark */;
+ PBXPerProjectTemplateStateSaveDate = 569735086;
+ PBXWorkspaceStateSaveDate = 569735086;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -64,7 +60,7 @@
};
2407DEB6089929BA00EB68BF /* Energy.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 3328}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 3289}}";
sepNavSelRange = "{6741, 0}";
sepNavVisRange = "{6042, 2997}";
sepNavWindowFrame = "{{31, 47}, {895, 831}}";
@@ -108,21 +104,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B7E3F4220A7CBD700482CB5 /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 2407DEB6089929BA00EB68BF /* Energy.cpp */;
- };
- 8B7E3F5620A7CBF900482CB5 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 2407DEB6089929BA00EB68BF /* Energy.cpp */;
- name = "Energy.cpp: 272";
- rLen = 0;
- rLoc = 6741;
- rType = 0;
- vrLen = 2997;
- vrLoc = 6042;
- };
- 8D01CCC60486CAD60068D4B7 /* Energy */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/Energy/Energy.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Energy/Energy.xcodeproj/christopherjohnson.perspectivev3
index 7ec6aec..90db29b 100755
--- a/plugins/MacVST/Energy/Energy.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Energy/Energy.xcodeproj/christopherjohnson.perspectivev3
@@ -222,48 +222,7 @@
</dict>
</array>
<key>OpenEditors</key>
- <array>
- <dict>
- <key>Content</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8B7E3F5420A7CBF900482CB5</string>
- <key>PBXProjectModuleLabel</key>
- <string>Energy.cpp</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8B7E3F5520A7CBF900482CB5</string>
- <key>PBXProjectModuleLabel</key>
- <string>Energy.cpp</string>
- <key>_historyCapacity</key>
- <integer>0</integer>
- <key>bookmark</key>
- <string>8B7E3F5620A7CBF900482CB5</string>
- <key>history</key>
- <array>
- <string>8B7E3F4220A7CBD700482CB5</string>
- </array>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
- <key>StatusBarVisibility</key>
- <true/>
- </dict>
- <key>Geometry</key>
- <dict>
- <key>Frame</key>
- <string>{{0, 20}, {895, 734}}</string>
- <key>PBXModuleWindowStatusBarHidden2</key>
- <false/>
- <key>RubberWindowFrame</key>
- <string>31 103 895 775 0 0 1440 878 </string>
- </dict>
- </dict>
- </array>
+ <array/>
<key>PerspectiveWidths</key>
<array>
<integer>810</integer>
@@ -364,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>4 348 810 487 0 0 1440 878 </string>
+ <string>218 341 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -403,7 +362,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>4 348 810 487 0 0 1440 878 </string>
+ <string>218 341 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -428,7 +387,7 @@
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
- <string>4 348 810 487 0 0 1440 878 </string>
+ <string>218 341 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -510,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B7E3F5120A7CBF900482CB5</string>
+ <string>8B7939C121F577BA006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B7E3F5220A7CBF900482CB5</string>
+ <string>8B7939C221F577BA006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B7E3F5320A7CBF900482CB5</string>
+ <string>8B7939C321F577BA006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -687,7 +646,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>547867641.91280901</real>
+ <real>569735098.81678498</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -705,10 +664,9 @@
<key>WindowOrderList</key>
<array>
<string>/Users/christopherjohnson/Desktop/MacVST/Energy/Energy.xcodeproj</string>
- <string>8B7E3F5420A7CBF900482CB5</string>
</array>
<key>WindowString</key>
- <string>4 348 810 487 0 0 1440 878 </string>
+ <string>218 341 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Energy/Energy.xcodeproj/project.pbxproj b/plugins/MacVST/Energy/Energy.xcodeproj/project.pbxproj
index 38f994d..d701601 100755
--- a/plugins/MacVST/Energy/Energy.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/Energy/Energy.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* Energy */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Energy" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* Energy */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Energy/source/EnergyProc.cpp b/plugins/MacVST/Energy/source/EnergyProc.cpp
index a72b868..a0a86f8 100755
--- a/plugins/MacVST/Energy/source/EnergyProc.cpp
+++ b/plugins/MacVST/Energy/source/EnergyProc.cpp
@@ -742,18 +742,14 @@ void Energy::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
//we don't need a drySample because we never touched inputSample
//so, this provides the inv/dry/wet control all by itself
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -763,12 +759,6 @@ void Energy::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void Energy::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -1506,18 +1496,16 @@ void Energy::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//we don't need a drySample because we never touched inputSample
//so, this provides the inv/dry/wet control all by itself
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -1527,10 +1515,4 @@ void Energy::processDoubleReplacing(double **inputs, double **outputs, VstInt32
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/Ensemble/Ensemble.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Ensemble/Ensemble.xcodeproj/christopherjohnson.pbxuser
index 599610a..2c3d879 100755
--- a/plugins/MacVST/Ensemble/Ensemble.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Ensemble/Ensemble.xcodeproj/christopherjohnson.pbxuser
@@ -51,12 +51,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 529847444;
- PBXWorkspaceStateSaveDate = 529847444;
+ PBXPerProjectTemplateStateSaveDate = 569735122;
+ PBXWorkspaceStateSaveDate = 569735122;
};
perUserProjectItems = {
- 8B4C965F1F94E0F300064452 /* XCBuildMessageTextBookmark */ = 8B4C965F1F94E0F300064452 /* XCBuildMessageTextBookmark */;
- 8B4C96601F94E0F300064452 /* PBXTextBookmark */ = 8B4C96601F94E0F300064452 /* PBXTextBookmark */;
+ 8B7939DE21F577D7006E9731 /* PBXTextBookmark */ = 8B7939DE21F577D7006E9731 /* PBXTextBookmark */;
+ 8B7939ED21F57803006E9731 /* PBXTextBookmark */ = 8B7939ED21F57803006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -64,17 +64,17 @@
};
2407DEB6089929BA00EB68BF /* Ensemble.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {628, 2171}}";
+ sepNavIntBoundsRect = "{{0, 0}, {628, 2067}}";
sepNavSelRange = "{656, 0}";
- sepNavVisRange = "{485, 184}";
+ sepNavVisRange = "{570, 99}";
sepNavWindowFrame = "{{46, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Ensemble.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1118}}";
- sepNavSelRange = "{2554, 0}";
- sepNavVisRange = "{624, 2262}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 1079}}";
+ sepNavSelRange = "{2770, 0}";
+ sepNavVisRange = "{538, 2294}";
sepNavWindowFrame = "{{505, 39}, {895, 831}}";
};
};
@@ -108,24 +108,25 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B4C965F1F94E0F300064452 /* XCBuildMessageTextBookmark */ = {
+ 8B7939DE21F577D7006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "Incompatible types in assignment of 'double' to 'double [49]'";
fRef = 2407DEB6089929BA00EB68BF /* Ensemble.cpp */;
- fallbackIsa = XCBuildMessageTextBookmark;
- rLen = 1;
- rLoc = 21;
- rType = 1;
+ name = "Ensemble.cpp: 22";
+ rLen = 0;
+ rLoc = 656;
+ rType = 0;
+ vrLen = 99;
+ vrLoc = 570;
};
- 8B4C96601F94E0F300064452 /* PBXTextBookmark */ = {
+ 8B7939ED21F57803006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* Ensemble.cpp */;
name = "Ensemble.cpp: 22";
rLen = 0;
rLoc = 656;
rType = 0;
- vrLen = 184;
- vrLoc = 485;
+ vrLen = 99;
+ vrLoc = 570;
};
8D01CCC60486CAD60068D4B7 /* Ensemble */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Ensemble/Ensemble.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Ensemble/Ensemble.xcodeproj/christopherjohnson.perspectivev3
index 6da0cef..3188f6d 100755
--- a/plugins/MacVST/Ensemble/Ensemble.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Ensemble/Ensemble.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -298,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>7</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -321,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>13 367 810 487 0 0 1440 878 </string>
+ <string>348 289 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -349,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B4C96601F94E0F300064452</string>
+ <string>8B7939ED21F57803006E9731</string>
<key>history</key>
<array>
- <string>8B4C965F1F94E0F300064452</string>
+ <string>8B7939DE21F577D7006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -366,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 69}}</string>
+ <string>{{0, 0}, {603, 51}}</string>
<key>RubberWindowFrame</key>
- <string>13 367 810 487 0 0 1440 878 </string>
+ <string>348 289 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>69pt</string>
+ <string>51pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>372pt</string>
+ <string>390pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -391,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 345}}</string>
+ <string>{{10, 27}, {603, 363}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -445,9 +447,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 345}}</string>
+ <string>{{10, 27}, {603, 363}}</string>
<key>RubberWindowFrame</key>
- <string>13 367 810 487 0 0 1440 878 </string>
+ <string>348 289 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -475,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4C96611F94E0F300064452</string>
+ <string>8B7939EE21F57803006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4C96621F94E0F300064452</string>
+ <string>8B7939EF21F57803006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4C96631F94E0F300064452</string>
+ <string>8B7939F021F57803006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -652,7 +654,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>529850611.29679602</real>
+ <real>569735171.20292497</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -669,11 +671,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B4C96641F94E0F300064452</string>
- <string>/Users/christopherjohnson/Desktop/Ensemble/Ensemble.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/Ensemble/Ensemble.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>13 367 810 487 0 0 1440 878 </string>
+ <string>348 289 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Ensemble/source/Ensemble.cpp b/plugins/MacVST/Ensemble/source/Ensemble.cpp
index be624b2..b90bf6e 100755
--- a/plugins/MacVST/Ensemble/source/Ensemble.cpp
+++ b/plugins/MacVST/Ensemble/source/Ensemble.cpp
@@ -28,12 +28,9 @@ Ensemble::Ensemble(audioMasterCallback audioMaster) :
airEvenR = 0.0;
airOddR = 0.0;
airFactorR = 0.0;
-
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Ensemble/source/Ensemble.h b/plugins/MacVST/Ensemble/source/Ensemble.h
index 32ba8c0..7697d93 100755
--- a/plugins/MacVST/Ensemble/source/Ensemble.h
+++ b/plugins/MacVST/Ensemble/source/Ensemble.h
@@ -55,11 +55,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
const static int totalsamples = 65540;
float dL[totalsamples];
@@ -74,7 +71,7 @@ private:
double airEvenR;
double airOddR;
double airFactorR;
-
+ bool fpFlip;
float A;
float B;
float C;
diff --git a/plugins/MacVST/Ensemble/source/EnsembleProc.cpp b/plugins/MacVST/Ensemble/source/EnsembleProc.cpp
index 679e868..e9a3a43 100755
--- a/plugins/MacVST/Ensemble/source/EnsembleProc.cpp
+++ b/plugins/MacVST/Ensemble/source/EnsembleProc.cpp
@@ -37,9 +37,6 @@ void Ensemble::processReplacing(float **inputs, float **outputs, VstInt32 sample
double tempL;
double tempR;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -117,7 +114,8 @@ void Ensemble::processReplacing(float **inputs, float **outputs, VstInt32 sample
airPrevR = inputSampleR;
inputSampleR += (airFactorR*brighten);
//air, compensates for loss of highs in flanger's interpolation
-
+ fpFlip = !fpFlip;
+
if (gcount < 1 || gcount > 32767) {gcount = 32767;}
count = gcount;
dL[count+32767] = dL[count] = tempL = inputSampleL;
@@ -155,25 +153,14 @@ void Ensemble::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -215,9 +202,6 @@ void Ensemble::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double tempL;
double tempR;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -295,6 +279,7 @@ void Ensemble::processDoubleReplacing(double **inputs, double **outputs, VstInt3
airPrevR = inputSampleR;
inputSampleR += (airFactorR*brighten);
//air, compensates for loss of highs in flanger's interpolation
+ fpFlip = !fpFlip;
if (gcount < 1 || gcount > 32767) {gcount = 32767;}
count = gcount;
@@ -333,25 +318,16 @@ void Ensemble::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/christopherjohnson.pbxuser
index ebc50eb..b623a38 100755
--- a/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* EveryTrim */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 532471894;
- PBXWorkspaceStateSaveDate = 532471894;
+ PBXPerProjectTemplateStateSaveDate = 569735228;
+ PBXWorkspaceStateSaveDate = 569735228;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* EveryTrim */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/christopherjohnson.perspectivev3
index cc28805..09818e7 100755
--- a/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>653 231 810 487 0 0 1440 878 </string>
+ <string>630 231 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -362,7 +362,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>653 231 810 487 0 0 1440 878 </string>
+ <string>630 231 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -387,7 +387,7 @@
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
- <string>653 231 810 487 0 0 1440 878 </string>
+ <string>630 231 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BB5DD0E1FBCE05D008B4570</string>
+ <string>8B793A2521F57858006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BB5DD0F1FBCE05D008B4570</string>
+ <string>8B793A2621F57858006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BB5DD101FBCE05D008B4570</string>
+ <string>8B793A2721F57858006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>532472312.54818797</real>
+ <real>569735256.70818996</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,11 +643,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BB5DD481FBCE1F8008B4570</string>
<string>/Users/christopherjohnson/Desktop/MacVST/EveryTrim/EveryTrim.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>653 231 810 487 0 0 1440 878 </string>
+ <string>630 231 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/project.pbxproj b/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/project.pbxproj
index d45d548..e1a1fd8 100755
--- a/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/EveryTrim/EveryTrim.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* EveryTrim */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "EveryTrim" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* EveryTrim */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/EveryTrim/source/EveryTrim.cpp b/plugins/MacVST/EveryTrim/source/EveryTrim.cpp
index 1e81d35..b0a98d4 100755
--- a/plugins/MacVST/EveryTrim/source/EveryTrim.cpp
+++ b/plugins/MacVST/EveryTrim/source/EveryTrim.cpp
@@ -17,11 +17,8 @@ EveryTrim::EveryTrim(audioMasterCallback audioMaster) :
C = 0.5;
D = 0.5;
E = 0.5;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/EveryTrim/source/EveryTrim.h b/plugins/MacVST/EveryTrim/source/EveryTrim.h
index 28d9c27..4efc3cd 100755
--- a/plugins/MacVST/EveryTrim/source/EveryTrim.h
+++ b/plugins/MacVST/EveryTrim/source/EveryTrim.h
@@ -56,11 +56,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/EveryTrim/source/EveryTrimProc.cpp b/plugins/MacVST/EveryTrim/source/EveryTrimProc.cpp
index 30d764f..3c30eda 100755
--- a/plugins/MacVST/EveryTrim/source/EveryTrimProc.cpp
+++ b/plugins/MacVST/EveryTrim/source/EveryTrimProc.cpp
@@ -14,9 +14,6 @@ void EveryTrim::processReplacing(float **inputs, float **outputs, VstInt32 sampl
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double leftgain = pow(10.0,((A*24.0)-12.0)/20.0);
double rightgain = pow(10.0,((B*24.0)-12.0)/20.0);
@@ -83,25 +80,14 @@ void EveryTrim::processReplacing(float **inputs, float **outputs, VstInt32 sampl
inputSampleR = (mid-side) * rightgain;
//contains mastergain and the gain trim fixing the mid/side
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -120,9 +106,6 @@ void EveryTrim::processDoubleReplacing(double **inputs, double **outputs, VstInt
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double leftgain = pow(10.0,((A*24.0)-12.0)/20.0);
double rightgain = pow(10.0,((B*24.0)-12.0)/20.0);
@@ -189,25 +172,16 @@ void EveryTrim::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleR = (mid-side) * rightgain;
//contains mastergain and the gain trim fixing the mid/side
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/FathomFive/FathomFive.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/FathomFive/FathomFive.xcodeproj/christopherjohnson.pbxuser
index 8762267..ce01624 100755
--- a/plugins/MacVST/FathomFive/FathomFive.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/FathomFive/FathomFive.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,13 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460484;
- PBXWorkspaceStateSaveDate = 528460484;
+ PBXPerProjectTemplateStateSaveDate = 569735282;
+ PBXWorkspaceStateSaveDate = 569735282;
};
perUserProjectItems = {
8B21780D1D7BA3A500797BDD /* PBXTextBookmark */ = 8B21780D1D7BA3A500797BDD /* PBXTextBookmark */;
8B4E72C81D7B161E00EE9940 /* PBXTextBookmark */ = 8B4E72C81D7B161E00EE9940 /* PBXTextBookmark */;
- 8B9D6C161F7EE565007AB60F /* PBXTextBookmark */ = 8B9D6C161F7EE565007AB60F /* PBXTextBookmark */;
+ 8B793A4421F57884006E9731 /* PBXTextBookmark */ = 8B793A4421F57884006E9731 /* PBXTextBookmark */;
8B9D7A101F7FAAD9007AB60F /* PBXTextBookmark */ = 8B9D7A101F7FAAD9007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -72,9 +72,9 @@
};
245463B80991757100464AD3 /* FathomFive.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {600, 1131}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 1079}}";
sepNavSelRange = "{491, 0}";
- sepNavVisRange = "{464, 55}";
+ sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{513, 39}, {895, 831}}";
};
};
@@ -144,15 +144,15 @@
vrLen = 0;
vrLoc = 0;
};
- 8B9D6C161F7EE565007AB60F /* PBXTextBookmark */ = {
+ 8B793A4421F57884006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* FathomFive.h */;
name = "FathomFive.h: 26";
rLen = 0;
rLoc = 491;
rType = 0;
- vrLen = 55;
- vrLoc = 464;
+ vrLen = 0;
+ vrLoc = 0;
};
8B9D7A101F7FAAD9007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/FathomFive/FathomFive.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/FathomFive/FathomFive.xcodeproj/christopherjohnson.perspectivev3
index 0719e14..eb66b06 100755
--- a/plugins/MacVST/FathomFive/FathomFive.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/FathomFive/FathomFive.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>630 284 810 487 0 0 1440 878 </string>
+ <string>607 307 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,12 +351,12 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7A101F7FAAD9007AB60F</string>
+ <string>8B793A4421F57884006E9731</string>
<key>history</key>
<array>
<string>8B4E72C81D7B161E00EE9940</string>
<string>8B21780D1D7BA3A500797BDD</string>
- <string>8B9D6C161F7EE565007AB60F</string>
+ <string>8B9D7A101F7FAAD9007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -370,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 51}}</string>
+ <string>{{0, 0}, {603, 32}}</string>
<key>RubberWindowFrame</key>
- <string>630 284 810 487 0 0 1440 878 </string>
+ <string>607 307 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>51pt</string>
+ <string>32pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>390pt</string>
+ <string>409pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -395,9 +395,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 363}}</string>
+ <string>{{10, 27}, {603, 382}}</string>
<key>RubberWindowFrame</key>
- <string>630 284 810 487 0 0 1440 878 </string>
+ <string>607 307 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -479,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7A111F7FAAD9007AB60F</string>
+ <string>8B793A4521F57884006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7A121F7FAAD9007AB60F</string>
+ <string>8B793A4621F57884006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7A131F7FAAD9007AB60F</string>
+ <string>8B793A4721F57884006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -636,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460505.71975499</real>
+ <real>569735300.74946201</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -653,11 +653,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7A141F7FAAD9007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/FathomFive/FathomFive.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>630 284 810 487 0 0 1440 878 </string>
+ <string>607 307 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/FathomFive/source/FathomFive.cpp b/plugins/MacVST/FathomFive/source/FathomFive.cpp
index 8cd3f52..fd04b6d 100755
--- a/plugins/MacVST/FathomFive/source/FathomFive.cpp
+++ b/plugins/MacVST/FathomFive/source/FathomFive.cpp
@@ -100,16 +100,6 @@ void FathomFive::setParameter(VstInt32 index, float value) {
//variables can also be set in the processreplacing loop, and there they'll be set every buffersize
//here they're set when a parameter's actually changed, which should be less frequent, but
//you must use global variables in the FathomFive.h file to do it.
-// switch((VstInt32)( D * 3.999 ))
-// {
-// case 0: fpFlip = true; break; //choice A
-// case 1: fpFlip = false; break; //choice B
-// case 2: break; //choice C
-// case 3: break; //choice D
-// default: break; //should not happen
-// }
- //this relates to using D as a 'popup' and changing things based on that switch.
- //we are using fpFlip just because it's already there globally, as an example.
}
float FathomFive::getParameter(VstInt32 index) {
diff --git a/plugins/MacVST/Floor/Floor.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Floor/Floor.xcodeproj/christopherjohnson.pbxuser
index 612e5ad..80b3123 100755
--- a/plugins/MacVST/Floor/Floor.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Floor/Floor.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 561685582;
- PBXWorkspaceStateSaveDate = 561685582;
+ PBXPerProjectTemplateStateSaveDate = 569735322;
+ PBXWorkspaceStateSaveDate = 569735322;
};
perUserProjectItems = {
8B15DD34217AAF67007AD769 /* PBXTextBookmark */ = 8B15DD34217AAF67007AD769 /* PBXTextBookmark */;
- 8B42FCB721604F9E0092969A /* PBXTextBookmark */ = 8B42FCB721604F9E0092969A /* PBXTextBookmark */;
+ 8B793A6E21F578D2006E9731 /* PBXTextBookmark */ = 8B793A6E21F578D2006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -70,9 +70,9 @@
};
245463B80991757100464AD3 /* Floor.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1170}}";
+ sepNavIntBoundsRect = "{{0, 0}, {600, 1365}}";
sepNavSelRange = "{0, 0}";
- sepNavVisRange = "{485, 163}";
+ sepNavVisRange = "{485, 155}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
@@ -116,15 +116,15 @@
vrLen = 163;
vrLoc = 485;
};
- 8B42FCB721604F9E0092969A /* PBXTextBookmark */ = {
+ 8B793A6E21F578D2006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* Floor.h */;
name = "Floor.h: 1";
rLen = 0;
rLoc = 0;
rType = 0;
- vrLen = 217;
- vrLoc = 459;
+ vrLen = 155;
+ vrLoc = 485;
};
8D01CCC60486CAD60068D4B7 /* Floor */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Floor/Floor.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Floor/Floor.xcodeproj/christopherjohnson.perspectivev3
index 853f35f..3af6cc1 100755
--- a/plugins/MacVST/Floor/Floor.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Floor/Floor.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>21 338 810 487 0 0 1440 878 </string>
+ <string>334 313 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B15DD34217AAF67007AD769</string>
+ <string>8B793A6E21F578D2006E9731</string>
<key>history</key>
<array>
- <string>8B42FCB721604F9E0092969A</string>
+ <string>8B15DD34217AAF67007AD769</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 117}}</string>
+ <string>{{0, 0}, {603, 102}}</string>
<key>RubberWindowFrame</key>
- <string>21 338 810 487 0 0 1440 878 </string>
+ <string>334 313 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>117pt</string>
+ <string>102pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>324pt</string>
+ <string>339pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 297}}</string>
+ <string>{{10, 27}, {603, 312}}</string>
<key>RubberWindowFrame</key>
- <string>21 338 810 487 0 0 1440 878 </string>
+ <string>334 313 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B15DD35217AAF67007AD769</string>
+ <string>8B793A6F21F578D2006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B15DD36217AAF67007AD769</string>
+ <string>8B793A7021F578D2006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B15DD37217AAF67007AD769</string>
+ <string>8B793A7121F578D2006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>561688423.58535099</real>
+ <real>569735378.06358504</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,12 +651,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B15DD38217AAF67007AD769</string>
- <string>8B15DD39217AAF67007AD769</string>
- <string>/Users/christopherjohnson/Desktop/Floor/Floor.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/Floor/Floor.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>21 338 810 487 0 0 1440 878 </string>
+ <string>334 313 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Floor/source/FloorProc.cpp b/plugins/MacVST/Floor/source/FloorProc.cpp
index 69a2ccb..865446b 100755
--- a/plugins/MacVST/Floor/source/FloorProc.cpp
+++ b/plugins/MacVST/Floor/source/FloorProc.cpp
@@ -247,18 +247,14 @@ void Floor::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -268,12 +264,6 @@ void Floor::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void Floor::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -516,18 +506,16 @@ void Floor::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -537,10 +525,4 @@ void Floor::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/Fracture/Fracture.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Fracture/Fracture.xcodeproj/christopherjohnson.pbxuser
index 319327c..46f29ff 100755
--- a/plugins/MacVST/Fracture/Fracture.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Fracture/Fracture.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460537;
- PBXWorkspaceStateSaveDate = 528460537;
+ PBXPerProjectTemplateStateSaveDate = 569735404;
+ PBXWorkspaceStateSaveDate = 569735404;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
diff --git a/plugins/MacVST/Fracture/Fracture.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Fracture/Fracture.xcodeproj/christopherjohnson.perspectivev3
index 3c29fa7..da6f297 100755
--- a/plugins/MacVST/Fracture/Fracture.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Fracture/Fracture.xcodeproj/christopherjohnson.perspectivev3
@@ -339,13 +339,15 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>&lt;No Editor&gt;</string>
+ <string></string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
</dict>
<key>SplitCount</key>
<string>1</string>
@@ -467,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7A301F7FAB0C007AB60F</string>
+ <string>8B793A8421F578F8006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7A311F7FAB0C007AB60F</string>
+ <string>8B793A8521F578F8006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7A321F7FAB0C007AB60F</string>
+ <string>8B793A8621F578F8006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -624,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460556.044348</real>
+ <real>569735416.520316</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -641,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7A331F7FAB0C007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Fracture/Fracture.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Fracture/source/Fracture.cpp b/plugins/MacVST/Fracture/source/Fracture.cpp
index 255475a..03f3b19 100755
--- a/plugins/MacVST/Fracture/source/Fracture.cpp
+++ b/plugins/MacVST/Fracture/source/Fracture.cpp
@@ -16,11 +16,8 @@ Fracture::Fracture(audioMasterCallback audioMaster) :
B = 0.5; //2 from 1 to 3: (B*2.999)+1
C = 1.0;
D = 1.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Fracture/source/Fracture.h b/plugins/MacVST/Fracture/source/Fracture.h
index 659f94b..49d2718 100755
--- a/plugins/MacVST/Fracture/source/Fracture.h
+++ b/plugins/MacVST/Fracture/source/Fracture.h
@@ -55,11 +55,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Fracture/source/FractureProc.cpp b/plugins/MacVST/Fracture/source/FractureProc.cpp
index 8e217d8..5c1aaa9 100755
--- a/plugins/MacVST/Fracture/source/FractureProc.cpp
+++ b/plugins/MacVST/Fracture/source/FractureProc.cpp
@@ -14,9 +14,6 @@ void Fracture::processReplacing(float **inputs, float **outputs, VstInt32 sample
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double density = A*4;
double fracture = (((B*2.999)+1)*3.14159265358979);
@@ -101,25 +98,14 @@ void Fracture::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleL = (drySampleL * dry)+(inputSampleL * wet);
inputSampleR = (drySampleR * dry)+(inputSampleR * wet);
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -141,9 +127,6 @@ void Fracture::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double density = A*4;
double fracture = (((B*2.999)+1)*3.14159265358979);
@@ -228,25 +211,16 @@ void Fracture::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleL = (drySampleL * dry)+(inputSampleL * wet);
inputSampleR = (drySampleR * dry)+(inputSampleR * wet);
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/FromTape/FromTape.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/FromTape/FromTape.xcodeproj/christopherjohnson.pbxuser
index c1ba3e0..dc3d1fa 100755
--- a/plugins/MacVST/FromTape/FromTape.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/FromTape/FromTape.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* FromTape */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
breakpoints = (
);
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
@@ -51,12 +51,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460565;
- PBXWorkspaceStateSaveDate = 528460565;
- };
- perUserProjectItems = {
- 8B9D6C631F7EE5D4007AB60F /* PBXTextBookmark */ = 8B9D6C631F7EE5D4007AB60F /* PBXTextBookmark */;
- 8B9D7A521F7FAB2D007AB60F /* PBXTextBookmark */ = 8B9D7A521F7FAB2D007AB60F /* PBXTextBookmark */;
+ PBXPerProjectTemplateStateSaveDate = 569735440;
+ PBXWorkspaceStateSaveDate = 569735440;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -72,7 +68,7 @@
};
245463B80991757100464AD3 /* FromTape.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1807}}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 1768}}";
sepNavSelRange = "{3812, 0}";
sepNavVisRange = "{329, 2291}";
sepNavWindowFrame = "{{545, 47}, {895, 831}}";
@@ -108,27 +104,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6C631F7EE5D4007AB60F /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* FromTape.h */;
- name = "FromTape.h: 128";
- rLen = 0;
- rLoc = 3812;
- rType = 0;
- vrLen = 2291;
- vrLoc = 329;
- };
- 8B9D7A521F7FAB2D007AB60F /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* FromTape.h */;
- name = "FromTape.h: 128";
- rLen = 0;
- rLoc = 3812;
- rType = 0;
- vrLen = 2291;
- vrLoc = 329;
- };
- 8D01CCC60486CAD60068D4B7 /* FromTape */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/FromTape/FromTape.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/FromTape/FromTape.xcodeproj/christopherjohnson.perspectivev3
index 8d556d7..070d7b1 100755
--- a/plugins/MacVST/FromTape/FromTape.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/FromTape/FromTape.xcodeproj/christopherjohnson.perspectivev3
@@ -222,48 +222,7 @@
</dict>
</array>
<key>OpenEditors</key>
- <array>
- <dict>
- <key>Content</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8B2B778A1F6D6FF800A2CD5B</string>
- <key>PBXProjectModuleLabel</key>
- <string>FromTape.h</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8B2B778B1F6D6FF800A2CD5B</string>
- <key>PBXProjectModuleLabel</key>
- <string>FromTape.h</string>
- <key>_historyCapacity</key>
- <integer>0</integer>
- <key>bookmark</key>
- <string>8B9D7A521F7FAB2D007AB60F</string>
- <key>history</key>
- <array>
- <string>8B9D6C631F7EE5D4007AB60F</string>
- </array>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
- <key>StatusBarVisibility</key>
- <true/>
- </dict>
- <key>Geometry</key>
- <dict>
- <key>Frame</key>
- <string>{{0, 20}, {895, 734}}</string>
- <key>PBXModuleWindowStatusBarHidden2</key>
- <false/>
- <key>RubberWindowFrame</key>
- <string>545 103 895 775 0 0 1440 878 </string>
- </dict>
- </dict>
- </array>
+ <array/>
<key>PerspectiveWidths</key>
<array>
<integer>810</integer>
@@ -510,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7A4F1F7FAB2D007AB60F</string>
+ <string>8B793AA321F5791C006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7A501F7FAB2D007AB60F</string>
+ <string>8B793AA421F5791C006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7A511F7FAB2D007AB60F</string>
+ <string>8B793AA521F5791C006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -687,7 +646,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460589.56712198</real>
+ <real>569735452.09700799</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -704,7 +663,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7A531F7FAB2D007AB60F</string>
<string>8B2B778A1F6D6FF800A2CD5B</string>
<string>/Users/christopherjohnson/Desktop/MacVST/FromTape/FromTape.xcodeproj</string>
</array>
diff --git a/plugins/MacVST/FromTape/FromTape.xcodeproj/project.pbxproj b/plugins/MacVST/FromTape/FromTape.xcodeproj/project.pbxproj
index 1f0cea0..8175f33 100755
--- a/plugins/MacVST/FromTape/FromTape.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/FromTape/FromTape.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* FromTape */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "FromTape" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* FromTape */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/FromTape/source/FromTape.cpp b/plugins/MacVST/FromTape/source/FromTape.cpp
index 55c5ced..40b7876 100755
--- a/plugins/MacVST/FromTape/source/FromTape.cpp
+++ b/plugins/MacVST/FromTape/source/FromTape.cpp
@@ -82,11 +82,8 @@ FromTape::FromTape(audioMasterCallback audioMaster) :
flip = 0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/FromTape/source/FromTape.h b/plugins/MacVST/FromTape/source/FromTape.h
index 376b767..40efabc 100755
--- a/plugins/MacVST/FromTape/source/FromTape.h
+++ b/plugins/MacVST/FromTape/source/FromTape.h
@@ -120,11 +120,8 @@ private:
double iirSampleYR;
double iirSampleZR;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/FromTape/source/FromTapeProc.cpp b/plugins/MacVST/FromTape/source/FromTapeProc.cpp
index 42753e5..2d268ef 100755
--- a/plugins/MacVST/FromTape/source/FromTapeProc.cpp
+++ b/plugins/MacVST/FromTape/source/FromTapeProc.cpp
@@ -37,9 +37,6 @@ void FromTape::processReplacing(float **inputs, float **outputs, VstInt32 sample
double drySampleR;
double randy;
double invrandy;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -224,25 +221,14 @@ void FromTape::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -284,9 +270,6 @@ void FromTape::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double drySampleR;
double randy;
double invrandy;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -471,25 +454,16 @@ void FromTape::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Gatelope/Gatelope.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Gatelope/Gatelope.xcodeproj/christopherjohnson.pbxuser
index b9cbf51..bc12e1c 100755
--- a/plugins/MacVST/Gatelope/Gatelope.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Gatelope/Gatelope.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 565578826;
- PBXWorkspaceStateSaveDate = 565578826;
+ PBXPerProjectTemplateStateSaveDate = 569735474;
+ PBXWorkspaceStateSaveDate = 569735474;
};
perUserProjectItems = {
8B416DA521B60DFE00DD5013 /* PBXTextBookmark */ = 8B416DA521B60DFE00DD5013 /* PBXTextBookmark */;
- 8BDA3BB721B3655A00CC56FA /* PBXTextBookmark */ = 8BDA3BB721B3655A00CC56FA /* PBXTextBookmark */;
+ 8B793AC221F57942006E9731 /* PBXTextBookmark */ = 8B793AC221F57942006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -78,9 +78,9 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19838}}";
+ sepNavIntBoundsRect = "{{0, 0}, {747, 19864}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10613, 123}";
+ sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
@@ -116,15 +116,15 @@
vrLen = 123;
vrLoc = 10613;
};
- 8BDA3BB721B3655A00CC56FA /* PBXTextBookmark */ = {
+ 8B793AC221F57942006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 123;
- vrLoc = 10613;
+ vrLen = 0;
+ vrLoc = 0;
};
8D01CCC60486CAD60068D4B7 /* Gatelope */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Gatelope/Gatelope.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Gatelope/Gatelope.xcodeproj/christopherjohnson.perspectivev3
index f01e0a3..f643443 100755
--- a/plugins/MacVST/Gatelope/Gatelope.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Gatelope/Gatelope.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>17 371 810 487 0 0 1440 878 </string>
+ <string>460 296 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B416DA521B60DFE00DD5013</string>
+ <string>8B793AC221F57942006E9731</string>
<key>history</key>
<array>
- <string>8BDA3BB721B3655A00CC56FA</string>
+ <string>8B416DA521B60DFE00DD5013</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 51}}</string>
+ <string>{{0, 0}, {603, 32}}</string>
<key>RubberWindowFrame</key>
- <string>17 371 810 487 0 0 1440 878 </string>
+ <string>460 296 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>51pt</string>
+ <string>32pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>390pt</string>
+ <string>409pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 363}}</string>
+ <string>{{10, 27}, {603, 382}}</string>
<key>RubberWindowFrame</key>
- <string>17 371 810 487 0 0 1440 878 </string>
+ <string>460 296 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B416DA621B60DFE00DD5013</string>
+ <string>8B793AC321F57942006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B416DA721B60DFE00DD5013</string>
+ <string>8B793AC421F57942006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B416DA821B60DFE00DD5013</string>
+ <string>8B793AC521F57942006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>565579262.52925205</real>
+ <real>569735490.74607503</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -654,7 +654,7 @@
<string>/Users/christopherjohnson/Desktop/MacVST/Gatelope/Gatelope.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>17 371 810 487 0 0 1440 878 </string>
+ <string>460 296 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Gatelope/source/GatelopeProc.cpp b/plugins/MacVST/Gatelope/source/GatelopeProc.cpp
index b32bddb..f429042 100755
--- a/plugins/MacVST/Gatelope/source/GatelopeProc.cpp
+++ b/plugins/MacVST/Gatelope/source/GatelopeProc.cpp
@@ -196,18 +196,14 @@ void Gatelope::processReplacing(float **inputs, float **outputs, VstInt32 sample
flip = !flip;
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -217,12 +213,6 @@ void Gatelope::processReplacing(float **inputs, float **outputs, VstInt32 sample
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void Gatelope::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -414,18 +404,16 @@ void Gatelope::processDoubleReplacing(double **inputs, double **outputs, VstInt3
flip = !flip;
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -435,10 +423,4 @@ void Gatelope::processDoubleReplacing(double **inputs, double **outputs, VstInt3
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/Golem/Golem.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Golem/Golem.xcodeproj/christopherjohnson.pbxuser
index 795dec3..92a9864 100755
--- a/plugins/MacVST/Golem/Golem.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Golem/Golem.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 546574396;
- PBXWorkspaceStateSaveDate = 546574396;
+ PBXPerProjectTemplateStateSaveDate = 569735514;
+ PBXWorkspaceStateSaveDate = 569735514;
};
perUserProjectItems = {
- 8BC5D0B1209410C30058B257 /* PBXTextBookmark */ = 8BC5D0B1209410C30058B257 /* PBXTextBookmark */;
- 8BC5D0B2209410C30058B257 /* PBXTextBookmark */ = 8BC5D0B2209410C30058B257 /* PBXTextBookmark */;
+ 8B793AE021F57961006E9731 /* PBXTextBookmark */ = 8B793AE021F57961006E9731 /* PBXTextBookmark */;
+ 8B793AF221F579C4006E9731 /* PBXTextBookmark */ = 8B793AF221F579C4006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -62,17 +62,17 @@
};
2407DEB6089929BA00EB68BF /* Golem.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1963}}";
- sepNavSelRange = "{3822, 11}";
- sepNavVisRange = "{2936, 2411}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1989}}";
+ sepNavSelRange = "{558, 0}";
+ sepNavVisRange = "{0, 1950}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Golem.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 897}}";
- sepNavSelRange = "{2496, 0}";
- sepNavVisRange = "{2414, 147}";
+ sepNavIntBoundsRect = "{{0, 0}, {817, 923}}";
+ sepNavSelRange = "{2444, 0}";
+ sepNavVisRange = "{2413, 96}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
@@ -86,9 +86,9 @@
};
24D8286F09A914000093AEF8 /* GolemProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 3653}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 3354}}";
sepNavSelRange = "{5207, 0}";
- sepNavVisRange = "{4697, 1871}";
+ sepNavVisRange = "{6969, 1540}";
sepNavWindowFrame = "{{54, 47}, {895, 831}}";
};
};
@@ -106,25 +106,25 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BC5D0B1209410C30058B257 /* PBXTextBookmark */ = {
+ 8B793AE021F57961006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* Golem.h */;
name = "Golem.h: 61";
rLen = 0;
- rLoc = 2496;
+ rLoc = 2444;
rType = 0;
- vrLen = 147;
+ vrLen = 133;
vrLoc = 2414;
};
- 8BC5D0B2209410C30058B257 /* PBXTextBookmark */ = {
+ 8B793AF221F579C4006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* Golem.h */;
- name = "Golem.h: 61";
+ name = "Golem.h: 59";
rLen = 0;
- rLoc = 2496;
+ rLoc = 2444;
rType = 0;
- vrLen = 147;
- vrLoc = 2414;
+ vrLen = 96;
+ vrLoc = 2413;
};
8D01CCC60486CAD60068D4B7 /* Golem */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Golem/Golem.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Golem/Golem.xcodeproj/christopherjohnson.perspectivev3
index 62ce38b..0726bc5 100755
--- a/plugins/MacVST/Golem/Golem.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Golem/Golem.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>23 322 810 487 0 0 1440 878 </string>
+ <string>504 266 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BC5D0B2209410C30058B257</string>
+ <string>8B793AF221F579C4006E9731</string>
<key>history</key>
<array>
- <string>8BC5D0B1209410C30058B257</string>
+ <string>8B793AE021F57961006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
- <string>23 322 810 487 0 0 1440 878 </string>
+ <string>504 266 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>23 322 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 297}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -449,7 +447,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>504 266 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BC5D0B3209410C30058B257</string>
+ <string>8B793AF321F579C4006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BC5D0B4209410C30058B257</string>
+ <string>8B793AF421F579C4006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BC5D0B5209410C30058B257</string>
+ <string>8B793AF521F579C4006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>546574531.81958306</real>
+ <real>569735620.885432</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -654,7 +654,7 @@
<string>/Users/christopherjohnson/Desktop/MacVST/Golem/Golem.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>23 322 810 487 0 0 1440 878 </string>
+ <string>504 266 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Golem/source/Golem.cpp b/plugins/MacVST/Golem/source/Golem.cpp
index 8f63b48..c99c5cd 100755
--- a/plugins/MacVST/Golem/source/Golem.cpp
+++ b/plugins/MacVST/Golem/source/Golem.cpp
@@ -17,10 +17,8 @@ Golem::Golem(audioMasterCallback audioMaster) :
C = 0.0;
for(count = 0; count < 4098; count++) {p[count] = 0.0;}
count = 0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
flip = true;
//this is reset: values being initialized only once. Startup values, whatever they are.
diff --git a/plugins/MacVST/Golem/source/Golem.h b/plugins/MacVST/Golem/source/Golem.h
index 8bb81d8..e02ab78 100755
--- a/plugins/MacVST/Golem/source/Golem.h
+++ b/plugins/MacVST/Golem/source/Golem.h
@@ -54,10 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
+ long double fpNShapeL;
+ long double fpNShapeR;
bool flip;
//default stuff
double p[4099];
diff --git a/plugins/MacVST/Golem/source/GolemProc.cpp b/plugins/MacVST/Golem/source/GolemProc.cpp
index 9235869..1d7e9f5 100755
--- a/plugins/MacVST/Golem/source/GolemProc.cpp
+++ b/plugins/MacVST/Golem/source/GolemProc.cpp
@@ -14,9 +14,6 @@ void Golem::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
int phase = (int)((C * 5.999)+1);
double balance = ((A*2.0)-1.0) / 2.0;
double gainL = 0.5 - balance;
@@ -115,25 +112,14 @@ void Golem::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
inputSampleR = inputSampleL;
//the output is totally mono
- //noise shaping to 32-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- flip = !flip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -152,9 +138,6 @@ void Golem::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
int phase = (int)((C * 5.999)+1);
double balance = ((A*2.0)-1.0) / 2.0;
double gainL = 0.5 - balance;
@@ -253,25 +236,16 @@ void Golem::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
inputSampleR = inputSampleL;
//the output is totally mono
- //noise shaping to 64-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- flip = !flip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/christopherjohnson.pbxuser
index 32ae3e2..d93196d 100644..100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* GrooveWear */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 538681972;
- PBXWorkspaceStateSaveDate = 538681972;
+ PBXPerProjectTemplateStateSaveDate = 569735642;
+ PBXWorkspaceStateSaveDate = 569735642;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -58,18 +58,18 @@
};
2407DEB6089929BA00EB68BF /* GrooveWear.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1976}}";
- sepNavSelRange = "{853, 0}";
- sepNavVisRange = "{3082, 2076}";
- sepNavWindowFrame = "{{12, 47}, {895, 831}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1989}}";
+ sepNavSelRange = "{3622, 151}";
+ sepNavVisRange = "{2572, 2004}";
+ sepNavWindowFrame = "{{538, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* GrooveWear.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {866, 1144}}";
- sepNavSelRange = "{2839, 0}";
+ sepNavSelRange = "{2541, 368}";
sepNavVisRange = "{708, 2201}";
- sepNavWindowFrame = "{{20, 47}, {895, 831}}";
+ sepNavWindowFrame = "{{548, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
@@ -82,10 +82,10 @@
};
24D8286F09A914000093AEF8 /* GrooveWearProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {876, 12779}}";
- sepNavSelRange = "{41930, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {876, 11960}}";
+ sepNavSelRange = "{21536, 21122}";
sepNavVisRange = "{40820, 1838}";
- sepNavWindowFrame = "{{222, 39}, {923, 828}}";
+ sepNavWindowFrame = "{{523, 50}, {923, 828}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* GrooveWear */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/christopherjohnson.perspectivev3
index 4a8fe96..c016b37 100644..100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>21 368 810 487 0 0 1440 878 </string>
+ <string>630 296 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -362,7 +362,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>21 368 810 487 0 0 1440 878 </string>
+ <string>630 296 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -387,7 +387,7 @@
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
- <string>21 368 810 487 0 0 1440 878 </string>
+ <string>630 296 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4E5432201BA7F900B5DC2A</string>
+ <string>8B793B0821F579E6006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4E5433201BA7F900B5DC2A</string>
+ <string>8B793B0921F579E6006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4E5434201BA7F900B5DC2A</string>
+ <string>8B793B0A21F579E6006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>538683385.46335804</real>
+ <real>569735654.76659203</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,10 +643,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/GrooveWear/GrooveWear.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/GrooveWear/GrooveWear.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>21 368 810 487 0 0 1440 878 </string>
+ <string>630 296 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.pbxproj b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.pbxproj
index 0dd9583..e19f322 100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* GrooveWear */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "GrooveWear" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* GrooveWear */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index a80c038..a80c038 100644..100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
index 5c38f94..5c38f94 100644..100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
index 314de0f..314de0f 100644..100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/spiadmin.mode1v3
index c572326..c572326 100644..100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/spiadmin.mode1v3
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/spiadmin.mode1v3
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/spiadmin.pbxuser
index df94780..df94780 100644..100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/spiadmin.pbxuser
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/spiadmin.pbxuser
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
index 8ee693f..8ee693f 100644..100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
index 5bccbcb..5bccbcb 100644..100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
index a7bdd62..a7bdd62 100644..100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
index 0df2de4..0df2de4 100644..100755
--- a/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
+++ b/plugins/MacVST/GrooveWear/GrooveWear.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
diff --git a/plugins/MacVST/GrooveWear/source/GrooveWear.cpp b/plugins/MacVST/GrooveWear/source/GrooveWear.cpp
index e553daa..cbe1fc5 100755
--- a/plugins/MacVST/GrooveWear/source/GrooveWear.cpp
+++ b/plugins/MacVST/GrooveWear/source/GrooveWear.cpp
@@ -36,11 +36,8 @@ GrooveWear::GrooveWear(audioMasterCallback audioMaster) :
cMidPrevR = 0.0;
dMidPrevR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/GrooveWear/source/GrooveWear.h b/plugins/MacVST/GrooveWear/source/GrooveWear.h
index 7b933c2..4bf9745 100755
--- a/plugins/MacVST/GrooveWear/source/GrooveWear.h
+++ b/plugins/MacVST/GrooveWear/source/GrooveWear.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double aMidL[21];
diff --git a/plugins/MacVST/GrooveWear/source/GrooveWearProc.cpp b/plugins/MacVST/GrooveWear/source/GrooveWearProc.cpp
index a22f6df..e663203 100755
--- a/plugins/MacVST/GrooveWear/source/GrooveWearProc.cpp
+++ b/plugins/MacVST/GrooveWear/source/GrooveWearProc.cpp
@@ -14,9 +14,6 @@ void GrooveWear::processReplacing(float **inputs, float **outputs, VstInt32 samp
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double overallscale = (pow(A,2)*19.0)+1.0;
double gain = overallscale;
@@ -433,25 +430,14 @@ void GrooveWear::processReplacing(float **inputs, float **outputs, VstInt32 samp
drySampleR = inputSampleR;
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -470,9 +456,6 @@ void GrooveWear::processDoubleReplacing(double **inputs, double **outputs, VstIn
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double overallscale = (pow(A,2)*19.0)+1.0;
double gain = overallscale;
@@ -889,25 +872,16 @@ void GrooveWear::processDoubleReplacing(double **inputs, double **outputs, VstIn
drySampleR = inputSampleR;
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/GuitarConditioner/GuitarConditioner.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/GuitarConditioner/GuitarConditioner.xcodeproj/christopherjohnson.pbxuser
index c50d00a..878b3b6 100755
--- a/plugins/MacVST/GuitarConditioner/GuitarConditioner.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/GuitarConditioner/GuitarConditioner.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,13 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460599;
- PBXWorkspaceStateSaveDate = 528460599;
+ PBXPerProjectTemplateStateSaveDate = 569735678;
+ PBXWorkspaceStateSaveDate = 569735678;
};
perUserProjectItems = {
8B55B2CB1D5E372E00B8D4D6 /* PBXTextBookmark */ = 8B55B2CB1D5E372E00B8D4D6 /* PBXTextBookmark */;
- 8B9D6C941F7EE6EE007AB60F /* PBXTextBookmark */ = 8B9D6C941F7EE6EE007AB60F /* PBXTextBookmark */;
- 8B9D7A791F7FAB58007AB60F /* PBXTextBookmark */ = 8B9D7A791F7FAB58007AB60F /* PBXTextBookmark */;
+ 8B793B2521F57A02006E9731 /* PBXTextBookmark */ = 8B793B2521F57A02006E9731 /* PBXTextBookmark */;
+ 8B793B3421F57A3B006E9731 /* PBXTextBookmark */ = 8B793B3421F57A3B006E9731 /* PBXTextBookmark */;
8BA186921D49975600F8B3DC /* PBXTextBookmark */ = 8BA186921D49975600F8B3DC /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -64,15 +64,15 @@
};
2407DEB6089929BA00EB68BF /* GuitarConditioner.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1365}}";
- sepNavSelRange = "{3738, 0}";
- sepNavVisRange = "{1973, 2300}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1287}}";
+ sepNavSelRange = "{558, 0}";
+ sepNavVisRange = "{0, 2385}";
sepNavWindowFrame = "{{46, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* GuitarConditioner.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 1014}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 975}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
@@ -113,22 +113,22 @@
fRef = 2407DEB6089929BA00EB68BF /* GuitarConditioner.cpp */;
name = "Gain.cpp: 103";
rLen = 0;
- rLoc = 3202;
+ rLoc = 3216;
rType = 0;
vrLen = 156;
vrLoc = 3340;
};
- 8B9D6C941F7EE6EE007AB60F /* PBXTextBookmark */ = {
+ 8B793B2521F57A02006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* GuitarConditioner.h */;
name = "GuitarConditioner.h: 1";
rLen = 0;
rLoc = 0;
rType = 0;
- vrLen = 88;
+ vrLen = 0;
vrLoc = 0;
};
- 8B9D7A791F7FAB58007AB60F /* PBXTextBookmark */ = {
+ 8B793B3421F57A3B006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* GuitarConditioner.h */;
name = "GuitarConditioner.h: 1";
diff --git a/plugins/MacVST/GuitarConditioner/GuitarConditioner.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/GuitarConditioner/GuitarConditioner.xcodeproj/christopherjohnson.perspectivev3
index 01d3095..dc3886b 100755
--- a/plugins/MacVST/GuitarConditioner/GuitarConditioner.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/GuitarConditioner/GuitarConditioner.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>7</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -351,12 +351,12 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7A791F7FAB58007AB60F</string>
+ <string>8B793B3421F57A3B006E9731</string>
<key>history</key>
<array>
<string>8BA186921D49975600F8B3DC</string>
<string>8B55B2CB1D5E372E00B8D4D6</string>
- <string>8B9D6C941F7EE6EE007AB60F</string>
+ <string>8B793B2521F57A02006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -370,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 32}}</string>
+ <string>{{0, 0}, {603, 13}}</string>
<key>RubberWindowFrame</key>
<string>306 299 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>32pt</string>
+ <string>13pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>409pt</string>
+ <string>428pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -395,9 +395,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 382}}</string>
- <key>RubberWindowFrame</key>
- <string>306 299 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 401}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -451,7 +449,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 401}}</string>
+ <key>RubberWindowFrame</key>
+ <string>306 299 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -479,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7A7A1F7FAB58007AB60F</string>
+ <string>8B793B3521F57A3B006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7A7B1F7FAB58007AB60F</string>
+ <string>8B793B3621F57A3B006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7A7C1F7FAB58007AB60F</string>
+ <string>8B793B3721F57A3B006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -636,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460632.65863901</real>
+ <real>569735739.28810406</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -653,7 +653,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7A7D1F7FAB58007AB60F</string>
+ <string>8B793B3821F57A3B006E9731</string>
<string>/Users/christopherjohnson/Desktop/MacVST/GuitarConditioner/GuitarConditioner.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/GuitarConditioner/source/GuitarConditioner.cpp b/plugins/MacVST/GuitarConditioner/source/GuitarConditioner.cpp
index 8f3ccfc..b0388ab 100755
--- a/plugins/MacVST/GuitarConditioner/source/GuitarConditioner.cpp
+++ b/plugins/MacVST/GuitarConditioner/source/GuitarConditioner.cpp
@@ -12,12 +12,9 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new G
GuitarConditioner::GuitarConditioner(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
fpFlip = true;
-
lastSampleTL = 0.0;
lastSampleBL = 0.0; //for Slews. T for treble, B for bass
iirSampleTAL = 0.0;
diff --git a/plugins/MacVST/GuitarConditioner/source/GuitarConditioner.h b/plugins/MacVST/GuitarConditioner/source/GuitarConditioner.h
index 7bd73ab..3be09e1 100755
--- a/plugins/MacVST/GuitarConditioner/source/GuitarConditioner.h
+++ b/plugins/MacVST/GuitarConditioner/source/GuitarConditioner.h
@@ -49,13 +49,10 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
-
+ bool fpFlip;
double lastSampleTL;
double lastSampleBL; //for Slews
double iirSampleTAL;
diff --git a/plugins/MacVST/GuitarConditioner/source/GuitarConditionerProc.cpp b/plugins/MacVST/GuitarConditioner/source/GuitarConditionerProc.cpp
index 83970f2..b25d600 100755
--- a/plugins/MacVST/GuitarConditioner/source/GuitarConditionerProc.cpp
+++ b/plugins/MacVST/GuitarConditioner/source/GuitarConditionerProc.cpp
@@ -17,9 +17,6 @@ void GuitarConditioner::processReplacing(float **inputs, float **outputs, VstInt
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -164,26 +161,18 @@ void GuitarConditioner::processReplacing(float **inputs, float **outputs, VstInt
lastSampleBR = bassR; //bassR slew
inputSampleL = trebleL + bassL; //final merge
- inputSampleR = trebleR + bassR; //final merge
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
+ inputSampleR = trebleR + bassR; //final merge
fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+
+
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -205,9 +194,6 @@ void GuitarConditioner::processDoubleReplacing(double **inputs, double **outputs
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -353,26 +339,19 @@ void GuitarConditioner::processDoubleReplacing(double **inputs, double **outputs
lastSampleBR = bassR; //bassR slew
inputSampleL = trebleL + bassL; //final merge
- inputSampleR = trebleR + bassR; //final merge
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
+ inputSampleR = trebleR + bassR; //final merge
fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/HardVacuum/HardVacuum.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/HardVacuum/HardVacuum.xcodeproj/christopherjohnson.pbxuser
index c302fa1..2dae48f 100755
--- a/plugins/MacVST/HardVacuum/HardVacuum.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/HardVacuum/HardVacuum.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 541823415;
- PBXWorkspaceStateSaveDate = 541823415;
+ PBXPerProjectTemplateStateSaveDate = 569767859;
+ PBXWorkspaceStateSaveDate = 569767859;
};
perUserProjectItems = {
- 8B181A1A204B984700516BEE /* XCBuildMessageTextBookmark */ = 8B181A1A204B984700516BEE /* XCBuildMessageTextBookmark */;
8B181A1B204B984700516BEE /* PBXTextBookmark */ = 8B181A1B204B984700516BEE /* PBXTextBookmark */;
+ 8B793B5521F5F802006E9731 /* PBXTextBookmark */ = 8B793B5521F5F802006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -78,9 +78,9 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19747}}";
+ sepNavIntBoundsRect = "{{0, 0}, {838, 19877}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10459, 399}";
+ sepNavVisRange = "{10459, 280}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
@@ -106,23 +106,24 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B181A1A204B984700516BEE /* XCBuildMessageTextBookmark */ = {
+ 8B181A1B204B984700516BEE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "Deprecated conversion from string constant to 'char*'";
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- fallbackIsa = XCBuildMessageTextBookmark;
- rLen = 1;
- rLoc = 306;
- rType = 1;
+ name = "audioeffectx.cpp: 307";
+ rLen = 0;
+ rLoc = 10616;
+ rType = 0;
+ vrLen = 399;
+ vrLoc = 10459;
};
- 8B181A1B204B984700516BEE /* PBXTextBookmark */ = {
+ 8B793B5521F5F802006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 399;
+ vrLen = 280;
vrLoc = 10459;
};
8D01CCC60486CAD60068D4B7 /* HardVacuum */ = {
diff --git a/plugins/MacVST/HardVacuum/HardVacuum.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/HardVacuum/HardVacuum.xcodeproj/christopherjohnson.perspectivev3
index eda5e23..b731835 100755
--- a/plugins/MacVST/HardVacuum/HardVacuum.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/HardVacuum/HardVacuum.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -349,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B181A1B204B984700516BEE</string>
+ <string>8B793B5521F5F802006E9731</string>
<key>history</key>
<array>
- <string>8B181A1A204B984700516BEE</string>
+ <string>8B181A1B204B984700516BEE</string>
</array>
</dict>
<key>SplitCount</key>
@@ -366,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>23 367 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -391,7 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>23 367 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -446,8 +450,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>23 367 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -475,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B1819D9204B91BA00516BEE</string>
+ <string>8B793B5621F5F802006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B1819DA204B91BA00516BEE</string>
+ <string>8B793B5721F5F802006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B1819DB204B91BA00516BEE</string>
+ <string>8B793B5821F5F802006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -632,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>541825095.83224404</real>
+ <real>569767938.33907902</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -649,7 +651,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/HardVacuum/HardVacuum.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/HardVacuum/HardVacuum.xcodeproj</string>
</array>
<key>WindowString</key>
<string>23 367 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/HardVacuum/source/HardVacuum.cpp b/plugins/MacVST/HardVacuum/source/HardVacuum.cpp
index 2ad1a4a..9c14f89 100755
--- a/plugins/MacVST/HardVacuum/source/HardVacuum.cpp
+++ b/plugins/MacVST/HardVacuum/source/HardVacuum.cpp
@@ -19,11 +19,8 @@ HardVacuum::HardVacuum(audioMasterCallback audioMaster) :
E = 1.0;
lastSampleL = 0.0;
lastSampleR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/HardVacuum/source/HardVacuum.h b/plugins/MacVST/HardVacuum/source/HardVacuum.h
index 6321df6..7f4c098 100755
--- a/plugins/MacVST/HardVacuum/source/HardVacuum.h
+++ b/plugins/MacVST/HardVacuum/source/HardVacuum.h
@@ -56,11 +56,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double lastSampleL;
diff --git a/plugins/MacVST/HardVacuum/source/HardVacuumProc.cpp b/plugins/MacVST/HardVacuum/source/HardVacuumProc.cpp
index f8fe4fd..e0e07e2 100755
--- a/plugins/MacVST/HardVacuum/source/HardVacuumProc.cpp
+++ b/plugins/MacVST/HardVacuum/source/HardVacuumProc.cpp
@@ -33,9 +33,6 @@ void HardVacuum::processReplacing(float **inputs, float **outputs, VstInt32 samp
double skewL;
double skewR;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double drySampleL;
double drySampleR;
@@ -176,25 +173,14 @@ void HardVacuum::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -232,9 +218,6 @@ void HardVacuum::processDoubleReplacing(double **inputs, double **outputs, VstIn
double skewL;
double skewR;
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double drySampleL;
double drySampleR;
@@ -376,25 +359,16 @@ void HardVacuum::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/HermeTrim/HermeTrim.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/HermeTrim/HermeTrim.xcodeproj/christopherjohnson.pbxuser
index d0644db..1d213fa 100755
--- a/plugins/MacVST/HermeTrim/HermeTrim.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/HermeTrim/HermeTrim.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 532471901;
- PBXWorkspaceStateSaveDate = 532471901;
+ PBXPerProjectTemplateStateSaveDate = 569768168;
+ PBXWorkspaceStateSaveDate = 569768168;
};
perUserProjectItems = {
- 8BB5DD511FBCE26D008B4570 /* XCBuildMessageTextBookmark */ = 8BB5DD511FBCE26D008B4570 /* XCBuildMessageTextBookmark */;
+ 8B793B8E21F5F8F6006E9731 /* PBXTextBookmark */ = 8B793B8E21F5F8F6006E9731 /* PBXTextBookmark */;
8BB5DD521FBCE26D008B4570 /* PBXTextBookmark */ = 8BB5DD521FBCE26D008B4570 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -78,9 +78,9 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19747}}";
+ sepNavIntBoundsRect = "{{0, 0}, {838, 19877}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10459, 399}";
+ sepNavVisRange = "{10459, 280}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
@@ -106,14 +106,15 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BB5DD511FBCE26D008B4570 /* XCBuildMessageTextBookmark */ = {
+ 8B793B8E21F5F8F6006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "Deprecated conversion from string constant to 'char*'";
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- fallbackIsa = XCBuildMessageTextBookmark;
- rLen = 1;
- rLoc = 306;
- rType = 1;
+ name = "audioeffectx.cpp: 307";
+ rLen = 0;
+ rLoc = 10616;
+ rType = 0;
+ vrLen = 280;
+ vrLoc = 10459;
};
8BB5DD521FBCE26D008B4570 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/HermeTrim/HermeTrim.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/HermeTrim/HermeTrim.xcodeproj/christopherjohnson.perspectivev3
index 75862ab..c7b44c4 100755
--- a/plugins/MacVST/HermeTrim/HermeTrim.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/HermeTrim/HermeTrim.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -349,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BB5DD521FBCE26D008B4570</string>
+ <string>8B793B8E21F5F8F6006E9731</string>
<key>history</key>
<array>
- <string>8BB5DD511FBCE26D008B4570</string>
+ <string>8BB5DD521FBCE26D008B4570</string>
</array>
</dict>
<key>SplitCount</key>
@@ -366,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>37 371 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -391,7 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>37 371 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -446,8 +450,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>37 371 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -475,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BB5DD281FBCE0B3008B4570</string>
+ <string>8B793B8F21F5F8F6006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BB5DD291FBCE0B3008B4570</string>
+ <string>8B793B9021F5F8F6006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BB5DD2A1FBCE0B3008B4570</string>
+ <string>8B793B9121F5F8F6006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -632,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>532472429.63955802</real>
+ <real>569768182.06468904</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -649,7 +651,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/HermeTrim/HermeTrim.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/HermeTrim/HermeTrim.xcodeproj</string>
</array>
<key>WindowString</key>
<string>37 371 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/HermeTrim/source/HermeTrim.cpp b/plugins/MacVST/HermeTrim/source/HermeTrim.cpp
index 562df2c..117cc45 100755
--- a/plugins/MacVST/HermeTrim/source/HermeTrim.cpp
+++ b/plugins/MacVST/HermeTrim/source/HermeTrim.cpp
@@ -17,11 +17,8 @@ HermeTrim::HermeTrim(audioMasterCallback audioMaster) :
C = 0.5;
D = 0.5;
E = 0.5;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/HermeTrim/source/HermeTrim.h b/plugins/MacVST/HermeTrim/source/HermeTrim.h
index b8503ca..f0bc8ed 100755
--- a/plugins/MacVST/HermeTrim/source/HermeTrim.h
+++ b/plugins/MacVST/HermeTrim/source/HermeTrim.h
@@ -56,11 +56,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/HermeTrim/source/HermeTrimProc.cpp b/plugins/MacVST/HermeTrim/source/HermeTrimProc.cpp
index d920843..66d3144 100755
--- a/plugins/MacVST/HermeTrim/source/HermeTrimProc.cpp
+++ b/plugins/MacVST/HermeTrim/source/HermeTrimProc.cpp
@@ -14,9 +14,6 @@ void HermeTrim::processReplacing(float **inputs, float **outputs, VstInt32 sampl
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double leftgain = pow(10.0,((A*3.0)-1.5)/20.0);
double rightgain = pow(10.0,((B*3.0)-1.5)/20.0);
@@ -83,25 +80,14 @@ void HermeTrim::processReplacing(float **inputs, float **outputs, VstInt32 sampl
inputSampleR = (mid-side) * rightgain;
//contains mastergain and the gain trim fixing the mid/side
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -120,9 +106,6 @@ void HermeTrim::processDoubleReplacing(double **inputs, double **outputs, VstInt
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double leftgain = pow(10.0,((A*3.0)-1.5)/20.0);
double rightgain = pow(10.0,((B*3.0)-1.5)/20.0);
@@ -189,25 +172,16 @@ void HermeTrim::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleR = (mid-side) * rightgain;
//contains mastergain and the gain trim fixing the mid/side
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Hermepass/Hermepass.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Hermepass/Hermepass.xcodeproj/christopherjohnson.pbxuser
index 46149d5..7c8d8e8 100755
--- a/plugins/MacVST/Hermepass/Hermepass.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Hermepass/Hermepass.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460642;
- PBXWorkspaceStateSaveDate = 528460642;
+ PBXPerProjectTemplateStateSaveDate = 569767979;
+ PBXWorkspaceStateSaveDate = 569767979;
};
perUserProjectItems = {
- 8B9D6CBE1F7EE9E7007AB60F /* PBXTextBookmark */ = 8B9D6CBE1F7EE9E7007AB60F /* PBXTextBookmark */;
- 8B9D7A8F1F7FAB72007AB60F /* PBXTextBookmark */ = 8B9D7A8F1F7FAB72007AB60F /* PBXTextBookmark */;
+ 8B793B7321F5F897006E9731 /* PBXTextBookmark */ = 8B793B7321F5F897006E9731 /* PBXTextBookmark */;
+ 8B793B7821F5F8CF006E9731 /* PBXTextBookmark */ = 8B793B7821F5F8CF006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -62,23 +62,23 @@
};
2407DEB6089929BA00EB68BF /* Hermepass.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1950}}";
- sepNavSelRange = "{469, 0}";
- sepNavVisRange = "{2904, 2073}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1963}}";
+ sepNavSelRange = "{713, 0}";
+ sepNavVisRange = "{0, 1657}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Hermepass.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1131}}";
- sepNavSelRange = "{3408, 0}";
- sepNavVisRange = "{654, 2864}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 1092}}";
+ sepNavSelRange = "{3416, 0}";
+ sepNavVisRange = "{619, 2845}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {747, 19864}}";
+ sepNavIntBoundsRect = "{{0, 0}, {747, 19877}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
@@ -106,17 +106,17 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6CBE1F7EE9E7007AB60F /* PBXTextBookmark */ = {
+ 8B793B7321F5F897006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 123;
- vrLoc = 10613;
+ vrLen = 0;
+ vrLoc = 0;
};
- 8B9D7A8F1F7FAB72007AB60F /* PBXTextBookmark */ = {
+ 8B793B7821F5F8CF006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
diff --git a/plugins/MacVST/Hermepass/Hermepass.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Hermepass/Hermepass.xcodeproj/christopherjohnson.perspectivev3
index 48045b3..5ca3881 100755
--- a/plugins/MacVST/Hermepass/Hermepass.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Hermepass/Hermepass.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>303 293 810 487 0 0 1440 878 </string>
+ <string>278 293 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7A8F1F7FAB72007AB60F</string>
+ <string>8B793B7821F5F8CF006E9731</string>
<key>history</key>
<array>
- <string>8B9D6CBE1F7EE9E7007AB60F</string>
+ <string>8B793B7321F5F897006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 32}}</string>
+ <string>{{0, 0}, {603, 13}}</string>
<key>RubberWindowFrame</key>
- <string>303 293 810 487 0 0 1440 878 </string>
+ <string>278 293 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>32pt</string>
+ <string>13pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>409pt</string>
+ <string>428pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 382}}</string>
- <key>RubberWindowFrame</key>
- <string>303 293 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 401}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -449,7 +447,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 345}}</string>
+ <string>{{10, 27}, {603, 401}}</string>
+ <key>RubberWindowFrame</key>
+ <string>278 293 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7A901F7FAB72007AB60F</string>
+ <string>8B793B7921F5F8CF006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7A911F7FAB72007AB60F</string>
+ <string>8B793B7A21F5F8CF006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7A921F7FAB72007AB60F</string>
+ <string>8B793B7B21F5F8CF006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460658.10219902</real>
+ <real>569768143.68088698</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,11 +651,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7A931F7FAB72007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Hermepass/Hermepass.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>303 293 810 487 0 0 1440 878 </string>
+ <string>278 293 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Hermepass/source/Hermepass.cpp b/plugins/MacVST/Hermepass/source/Hermepass.cpp
index 3bfb1aa..4e4a532 100755
--- a/plugins/MacVST/Hermepass/source/Hermepass.cpp
+++ b/plugins/MacVST/Hermepass/source/Hermepass.cpp
@@ -32,12 +32,9 @@ Hermepass::Hermepass(audioMasterCallback audioMaster) :
iirFR = 0.0;
iirGR = 0.0;
iirHR = 0.0;
-
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Hermepass/source/Hermepass.h b/plugins/MacVST/Hermepass/source/Hermepass.h
index 4f29497..1000bb9 100755
--- a/plugins/MacVST/Hermepass/source/Hermepass.h
+++ b/plugins/MacVST/Hermepass/source/Hermepass.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double iirAL;
double iirBL; //first stage is the flipping one, for lowest slope. It is always engaged, and is the highest one
@@ -76,7 +73,7 @@ private:
double iirFR; //our slope control will have a pow() on it so that the high orders are way to the right side
double iirGR;
double iirHR; //seven poles max, and the final pole is always at 20hz directly.
-
+ bool fpFlip;
float A;
diff --git a/plugins/MacVST/Hermepass/source/HermepassProc.cpp b/plugins/MacVST/Hermepass/source/HermepassProc.cpp
index 01b35aa..fddffe3 100755
--- a/plugins/MacVST/Hermepass/source/HermepassProc.cpp
+++ b/plugins/MacVST/Hermepass/source/HermepassProc.cpp
@@ -17,10 +17,8 @@ void Hermepass::processReplacing(float **inputs, float **outputs, VstInt32 sampl
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
-
+ long double fpNew = 1.0 - fpOld;
double rangescale = 0.1 / overallscale;
double cutoff = pow(A,3);
@@ -175,26 +173,17 @@ void Hermepass::processReplacing(float **inputs, float **outputs, VstInt32 sampl
inputSampleR -= correction;
//end R channel
-
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+
+
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -216,10 +205,8 @@ void Hermepass::processDoubleReplacing(double **inputs, double **outputs, VstInt
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
long double fpOld = 0.618033988749894848204586; //golden ratio!
long double fpNew = 1.0 - fpOld;
-
double rangescale = 0.1 / overallscale;
double cutoff = pow(A,3);
@@ -374,26 +361,19 @@ void Hermepass::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleR -= correction;
//end R channel
-
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+
+
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/HighImpact/HighImpact.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/HighImpact/HighImpact.xcodeproj/christopherjohnson.pbxuser
index ebcffae..b8832a5 100755
--- a/plugins/MacVST/HighImpact/HighImpact.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/HighImpact/HighImpact.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460737;
- PBXWorkspaceStateSaveDate = 528460737;
+ PBXPerProjectTemplateStateSaveDate = 569768208;
+ PBXWorkspaceStateSaveDate = 569768208;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
diff --git a/plugins/MacVST/HighImpact/HighImpact.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/HighImpact/HighImpact.xcodeproj/christopherjohnson.perspectivev3
index 437b8d3..f860614 100755
--- a/plugins/MacVST/HighImpact/HighImpact.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/HighImpact/HighImpact.xcodeproj/christopherjohnson.perspectivev3
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7ACE1F7FABD1007AB60F</string>
+ <string>8B793BAE21F5F91A006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7ACF1F7FABD1007AB60F</string>
+ <string>8B793BAF21F5F91A006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7AD01F7FABD1007AB60F</string>
+ <string>8B793BB021F5F91A006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460753.11869597</real>
+ <real>569768218.37077904</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7AD11F7FABD1007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/HighImpact/HighImpact.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/HighImpact/source/HighImpact.cpp b/plugins/MacVST/HighImpact/source/HighImpact.cpp
index 0944b18..960d80c 100755
--- a/plugins/MacVST/HighImpact/source/HighImpact.cpp
+++ b/plugins/MacVST/HighImpact/source/HighImpact.cpp
@@ -17,11 +17,8 @@ HighImpact::HighImpact(audioMasterCallback audioMaster) :
C = 0.0;
lastSampleL = 0.0;
lastSampleR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/HighImpact/source/HighImpact.h b/plugins/MacVST/HighImpact/source/HighImpact.h
index 9c7a4a0..a57230b 100755
--- a/plugins/MacVST/HighImpact/source/HighImpact.h
+++ b/plugins/MacVST/HighImpact/source/HighImpact.h
@@ -54,11 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double lastSampleL;
diff --git a/plugins/MacVST/HighImpact/source/HighImpactProc.cpp b/plugins/MacVST/HighImpact/source/HighImpactProc.cpp
index 037bbe9..f24804a 100755
--- a/plugins/MacVST/HighImpact/source/HighImpactProc.cpp
+++ b/plugins/MacVST/HighImpact/source/HighImpactProc.cpp
@@ -14,9 +14,6 @@ void HighImpact::processReplacing(float **inputs, float **outputs, VstInt32 samp
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -161,25 +158,14 @@ void HighImpact::processReplacing(float **inputs, float **outputs, VstInt32 samp
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -201,9 +187,6 @@ void HighImpact::processDoubleReplacing(double **inputs, double **outputs, VstIn
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -348,25 +331,16 @@ void HighImpact::processDoubleReplacing(double **inputs, double **outputs, VstIn
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Highpass/Highpass.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Highpass/Highpass.xcodeproj/christopherjohnson.pbxuser
index 41bc4e3..6a621d4 100755
--- a/plugins/MacVST/Highpass/Highpass.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Highpass/Highpass.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460765;
- PBXWorkspaceStateSaveDate = 528460765;
+ PBXPerProjectTemplateStateSaveDate = 569768258;
+ PBXWorkspaceStateSaveDate = 569768258;
};
perUserProjectItems = {
- 8B9D6D1C1F7EEAA7007AB60F /* PBXTextBookmark */ = 8B9D6D1C1F7EEAA7007AB60F /* PBXTextBookmark */;
+ 8B793BD921F5FB42006E9731 /* PBXTextBookmark */ = 8B793BD921F5FB42006E9731 /* PBXTextBookmark */;
8B9D7AED1F7FABEE007AB60F /* PBXTextBookmark */ = 8B9D7AED1F7FABEE007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -62,17 +62,17 @@
};
2407DEB6089929BA00EB68BF /* Highpass.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 2015}}";
- sepNavSelRange = "{470, 0}";
- sepNavVisRange = "{0, 1934}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1976}}";
+ sepNavSelRange = "{605, 0}";
+ sepNavVisRange = "{0, 1964}";
sepNavWindowFrame = "{{545, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Highpass.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 975}}";
- sepNavSelRange = "{2665, 0}";
- sepNavVisRange = "{373, 2298}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 936}}";
+ sepNavSelRange = "{2612, 0}";
+ sepNavVisRange = "{366, 2258}";
sepNavWindowFrame = "{{545, 45}, {895, 831}}";
};
};
@@ -86,8 +86,8 @@
};
24D8286F09A914000093AEF8 /* HighpassProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 3861}}";
- sepNavSelRange = "{10302, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 3549}}";
+ sepNavSelRange = "{9802, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{325, 47}, {895, 831}}";
};
@@ -106,12 +106,12 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6D1C1F7EEAA7007AB60F /* PBXTextBookmark */ = {
+ 8B793BD921F5FB42006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* HighpassProc.cpp */;
- name = "HighpassProc.cpp: 297";
+ name = "HighpassProc.cpp: 270";
rLen = 0;
- rLoc = 10302;
+ rLoc = 9802;
rType = 0;
vrLen = 0;
vrLoc = 0;
@@ -121,7 +121,7 @@
fRef = 24D8286F09A914000093AEF8 /* HighpassProc.cpp */;
name = "HighpassProc.cpp: 297";
rLen = 0;
- rLoc = 10302;
+ rLoc = 9802;
rType = 0;
vrLen = 0;
vrLoc = 0;
diff --git a/plugins/MacVST/Highpass/Highpass.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Highpass/Highpass.xcodeproj/christopherjohnson.perspectivev3
index 9d76d95..e1cb811 100755
--- a/plugins/MacVST/Highpass/Highpass.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Highpass/Highpass.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7AED1F7FABEE007AB60F</string>
+ <string>8B793BD921F5FB42006E9731</string>
<key>history</key>
<array>
- <string>8B9D6D1C1F7EEAA7007AB60F</string>
+ <string>8B9D7AED1F7FABEE007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>369 207 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
- <key>RubberWindowFrame</key>
- <string>369 207 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 414}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -449,7 +447,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>369 207 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7AEE1F7FABEE007AB60F</string>
+ <string>8B793BDA21F5FB42006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7AEF1F7FABEE007AB60F</string>
+ <string>8B793BDB21F5FB42006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7AF01F7FABEE007AB60F</string>
+ <string>8B793BDC21F5FB42006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460782.88018203</real>
+ <real>569768770.42441106</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7AF11F7FABEE007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Highpass/Highpass.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Highpass/source/Highpass.cpp b/plugins/MacVST/Highpass/source/Highpass.cpp
index ed43f9d..86ebe24 100755
--- a/plugins/MacVST/Highpass/source/Highpass.cpp
+++ b/plugins/MacVST/Highpass/source/Highpass.cpp
@@ -19,10 +19,8 @@ Highpass::Highpass(audioMasterCallback audioMaster) :
iirSampleBL = 0.0;
iirSampleAR = 0.0;
iirSampleBR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
fpFlip = true;
//this is reset: values being initialized only once. Startup values, whatever they are.
diff --git a/plugins/MacVST/Highpass/source/Highpass.h b/plugins/MacVST/Highpass/source/Highpass.h
index 03d8609..673f951 100755
--- a/plugins/MacVST/Highpass/source/Highpass.h
+++ b/plugins/MacVST/Highpass/source/Highpass.h
@@ -54,11 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
@@ -68,7 +65,7 @@ private:
double iirSampleBL;
double iirSampleAR;
double iirSampleBR;
-
+ bool fpFlip;
};
#endif
diff --git a/plugins/MacVST/Highpass/source/HighpassProc.cpp b/plugins/MacVST/Highpass/source/HighpassProc.cpp
index b1e7de9..371ed57 100755
--- a/plugins/MacVST/Highpass/source/HighpassProc.cpp
+++ b/plugins/MacVST/Highpass/source/HighpassProc.cpp
@@ -26,9 +26,6 @@ void Highpass::processReplacing(float **inputs, float **outputs, VstInt32 sample
double inputSampleR;
double outputSampleL;
double outputSampleR;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
iirAmount += (iirAmount * tight * tight);
if (tight > 0) tight /= 1.5;
@@ -114,33 +111,21 @@ void Highpass::processReplacing(float **inputs, float **outputs, VstInt32 sample
iirSampleBR = (iirSampleBR * (1 - (offset * iirAmount))) + (inputSampleR * (offset * iirAmount));
outputSampleR = outputSampleR - iirSampleBR;
}
+ fpFlip = !fpFlip;
if (wet < 1.0) outputSampleL = (outputSampleL * wet) + (inputSampleL * dry);
if (wet < 1.0) outputSampleR = (outputSampleR * wet) + (inputSampleR * dry);
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = outputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((outputSampleL-fpTemp)*fpNew);
- outputSampleL += fpNShapeLA;
-
- fpTemp = outputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((outputSampleR-fpTemp)*fpNew);
- outputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = outputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((outputSampleL-fpTemp)*fpNew);
- outputSampleL += fpNShapeLB;
-
- fpTemp = outputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((outputSampleR-fpTemp)*fpNew);
- outputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = outputSampleL;
*out2 = outputSampleR;
@@ -171,9 +156,6 @@ void Highpass::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double inputSampleR;
double outputSampleL;
double outputSampleR;
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
iirAmount += (iirAmount * tight * tight);
if (tight > 0) tight /= 1.5;
@@ -259,33 +241,23 @@ void Highpass::processDoubleReplacing(double **inputs, double **outputs, VstInt3
iirSampleBR = (iirSampleBR * (1 - (offset * iirAmount))) + (inputSampleR * (offset * iirAmount));
outputSampleR = outputSampleR - iirSampleBR;
}
+ fpFlip = !fpFlip;
if (wet < 1.0) outputSampleL = (outputSampleL * wet) + (inputSampleL * dry);
if (wet < 1.0) outputSampleR = (outputSampleR * wet) + (inputSampleR * dry);
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = outputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((outputSampleL-fpTemp)*fpNew);
- outputSampleL += fpNShapeLA;
-
- fpTemp = outputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((outputSampleR-fpTemp)*fpNew);
- outputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = outputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((outputSampleL-fpTemp)*fpNew);
- outputSampleL += fpNShapeLB;
-
- fpTemp = outputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((outputSampleR-fpTemp)*fpNew);
- outputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = outputSampleL;
*out2 = outputSampleR;
diff --git a/plugins/MacVST/Hombre/Hombre.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Hombre/Hombre.xcodeproj/christopherjohnson.pbxuser
index 0318f29..e7c095e 100755
--- a/plugins/MacVST/Hombre/Hombre.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Hombre/Hombre.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* Hombre */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460792;
- PBXWorkspaceStateSaveDate = 528460792;
+ PBXPerProjectTemplateStateSaveDate = 569768789;
+ PBXWorkspaceStateSaveDate = 569768789;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* Hombre */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/Hombre/Hombre.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Hombre/Hombre.xcodeproj/christopherjohnson.perspectivev3
index 4a41e1b..0ff9e72 100755
--- a/plugins/MacVST/Hombre/Hombre.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Hombre/Hombre.xcodeproj/christopherjohnson.perspectivev3
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7B0D1F7FAC06007AB60F</string>
+ <string>8B793BF921F5FCAE006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7B0E1F7FAC06007AB60F</string>
+ <string>8B793BFA21F5FCAE006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7B0F1F7FAC06007AB60F</string>
+ <string>8B793BFB21F5FCAE006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460806.70010799</real>
+ <real>569769134.11826503</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7B101F7FAC06007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Hombre/Hombre.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Hombre/Hombre.xcodeproj/project.pbxproj b/plugins/MacVST/Hombre/Hombre.xcodeproj/project.pbxproj
index 2e3db5b..0beffb6 100755
--- a/plugins/MacVST/Hombre/Hombre.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/Hombre/Hombre.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* Hombre */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Hombre" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
+ 8D01CCC60486CAD60068D4B7 /* Hombre */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Hombre/source/Hombre.cpp b/plugins/MacVST/Hombre/source/Hombre.cpp
index 9ef8844..8b03ed1 100755
--- a/plugins/MacVST/Hombre/source/Hombre.cpp
+++ b/plugins/MacVST/Hombre/source/Hombre.cpp
@@ -17,11 +17,8 @@ Hombre::Hombre(audioMasterCallback audioMaster) :
for(int count = 0; count < 4000; count++) {pL[count] = 0.0; pR[count] = 0.0;}
gcount = 0;
slide = 0.421;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Hombre/source/Hombre.h b/plugins/MacVST/Hombre/source/Hombre.h
index 94e29b1..e23f6f3 100755
--- a/plugins/MacVST/Hombre/source/Hombre.h
+++ b/plugins/MacVST/Hombre/source/Hombre.h
@@ -58,11 +58,8 @@ private:
double slide;
int gcount;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Hombre/source/HombreProc.cpp b/plugins/MacVST/Hombre/source/HombreProc.cpp
index 01e08bd..16bf513 100755
--- a/plugins/MacVST/Hombre/source/HombreProc.cpp
+++ b/plugins/MacVST/Hombre/source/HombreProc.cpp
@@ -17,9 +17,6 @@ void Hombre::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double target = A;
double offsetA;
@@ -134,25 +131,14 @@ void Hombre::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -174,9 +160,6 @@ void Hombre::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double target = A;
double offsetA;
@@ -291,25 +274,16 @@ void Hombre::processDoubleReplacing(double **inputs, double **outputs, VstInt32
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/IronOxide5/IronOxide5.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/IronOxide5/IronOxide5.xcodeproj/christopherjohnson.pbxuser
index 1875dde..3c067ed 100755
--- a/plugins/MacVST/IronOxide5/IronOxide5.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/IronOxide5/IronOxide5.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460815;
- PBXWorkspaceStateSaveDate = 528460815;
+ PBXPerProjectTemplateStateSaveDate = 569769155;
+ PBXWorkspaceStateSaveDate = 569769155;
};
perUserProjectItems = {
- 8B9D6D5B1F7EEB52007AB60F /* PBXTextBookmark */ = 8B9D6D5B1F7EEB52007AB60F /* PBXTextBookmark */;
+ 8B793C0E21F5FCCD006E9731 /* PBXTextBookmark */ = 8B793C0E21F5FCCD006E9731 /* PBXTextBookmark */;
8B9D7B361F7FAC33007AB60F /* PBXTextBookmark */ = 8B9D7B361F7FAC33007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -62,9 +62,9 @@
};
2407DEB6089929BA00EB68BF /* IronOxide5.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {670, 2418}}";
+ sepNavIntBoundsRect = "{{0, 0}, {670, 2353}}";
sepNavSelRange = "{5913, 24}";
- sepNavVisRange = "{5125, 1406}";
+ sepNavVisRange = "{5294, 1247}";
sepNavWindowFrame = "{{274, 45}, {895, 831}}";
};
};
@@ -106,15 +106,15 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6D5B1F7EEB52007AB60F /* PBXTextBookmark */ = {
+ 8B793C0E21F5FCCD006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* IronOxide5.cpp */;
- name = "IronOxide5.cpp: 158";
+ name = "IronOxide5.cpp: 155";
rLen = 24;
rLoc = 5913;
rType = 0;
- vrLen = 1489;
- vrLoc = 5042;
+ vrLen = 1247;
+ vrLoc = 5294;
};
8B9D7B361F7FAC33007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/IronOxide5/IronOxide5.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/IronOxide5/IronOxide5.xcodeproj/christopherjohnson.perspectivev3
index 8f562dc..d0aaa37 100755
--- a/plugins/MacVST/IronOxide5/IronOxide5.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/IronOxide5/IronOxide5.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7B361F7FAC33007AB60F</string>
+ <string>8B793C0E21F5FCCD006E9731</string>
<key>history</key>
<array>
- <string>8B9D6D5B1F7EEB52007AB60F</string>
+ <string>8B9D7B361F7FAC33007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {604, 314}}</string>
+ <string>{{0, 0}, {604, 303}}</string>
<key>RubberWindowFrame</key>
<string>564 142 811 710 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>314pt</string>
+ <string>303pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>350pt</string>
+ <string>361pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {604, 323}}</string>
+ <string>{{10, 27}, {604, 334}}</string>
<key>RubberWindowFrame</key>
<string>564 142 811 710 0 0 1440 878 </string>
</dict>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7B371F7FAC33007AB60F</string>
+ <string>8B793C0F21F5FCCD006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7B381F7FAC33007AB60F</string>
+ <string>8B793C1021F5FCCD006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7B391F7FAC33007AB60F</string>
+ <string>8B793C1121F5FCCD006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460851.584521</real>
+ <real>569769165.367818</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7B3A1F7FAC33007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/IronOxide5/IronOxide5.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/IronOxide5/source/IronOxide5.cpp b/plugins/MacVST/IronOxide5/source/IronOxide5.cpp
index 2d7c84f..914f53b 100755
--- a/plugins/MacVST/IronOxide5/source/IronOxide5.cpp
+++ b/plugins/MacVST/IronOxide5/source/IronOxide5.cpp
@@ -45,11 +45,8 @@ IronOxide5::IronOxide5(audioMasterCallback audioMaster) :
rateof = 0.5;
nextmax = 0.5;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/IronOxide5/source/IronOxide5.h b/plugins/MacVST/IronOxide5/source/IronOxide5.h
index a7cad5d..82d4c9a 100755
--- a/plugins/MacVST/IronOxide5/source/IronOxide5.h
+++ b/plugins/MacVST/IronOxide5/source/IronOxide5.h
@@ -101,11 +101,8 @@ private:
double nextmax;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/IronOxide5/source/IronOxide5Proc.cpp b/plugins/MacVST/IronOxide5/source/IronOxide5Proc.cpp
index c0fbb35..e42d69f 100755
--- a/plugins/MacVST/IronOxide5/source/IronOxide5Proc.cpp
+++ b/plugins/MacVST/IronOxide5/source/IronOxide5Proc.cpp
@@ -17,9 +17,6 @@ void IronOxide5::processReplacing(float **inputs, float **outputs, VstInt32 samp
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = pow(10.0,((A*36.0)-18.0)/20.0);
double outputgain = pow(10.0,((F*36.0)-18.0)/20.0);
@@ -422,25 +419,14 @@ void IronOxide5::processReplacing(float **inputs, float **outputs, VstInt32 samp
}
//end invdrywet block with outputgain
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -462,9 +448,6 @@ void IronOxide5::processDoubleReplacing(double **inputs, double **outputs, VstIn
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = pow(10.0,((A*36.0)-18.0)/20.0);
double outputgain = pow(10.0,((F*36.0)-18.0)/20.0);
@@ -867,25 +850,16 @@ void IronOxide5::processDoubleReplacing(double **inputs, double **outputs, VstIn
}
//end invdrywet block with outputgain
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/christopherjohnson.pbxuser
index 9ecb7a4..45dee94 100755
--- a/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* IronOxideClassic */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460860;
- PBXWorkspaceStateSaveDate = 528460860;
+ PBXPerProjectTemplateStateSaveDate = 569769189;
+ PBXWorkspaceStateSaveDate = 569769189;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -58,17 +58,17 @@
};
2407DEB6089929BA00EB68BF /* IronOxideClassic.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1911}}";
- sepNavSelRange = "{4912, 0}";
- sepNavVisRange = "{3304, 2335}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1885}}";
+ sepNavSelRange = "{822, 0}";
+ sepNavVisRange = "{0, 2130}";
sepNavWindowFrame = "{{530, 43}, {895, 831}}";
};
};
245463B80991757100464AD3 /* IronOxideClassic.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1144}}";
- sepNavSelRange = "{2736, 0}";
- sepNavVisRange = "{475, 2394}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 1105}}";
+ sepNavSelRange = "{2766, 0}";
+ sepNavVisRange = "{642, 2241}";
sepNavWindowFrame = "{{541, 47}, {895, 831}}";
};
};
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* IronOxideClassic */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/christopherjohnson.perspectivev3
index d4487c2..2960170 100755
--- a/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -360,18 +360,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>415 94 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -385,9 +385,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
- <key>RubberWindowFrame</key>
- <string>415 94 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 414}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -441,7 +439,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 363}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>415 94 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7B4C1F7FAC58007AB60F</string>
+ <string>8B793C3A21F5FF8A006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7B4D1F7FAC58007AB60F</string>
+ <string>8B793C3B21F5FF8A006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7B4E1F7FAC58007AB60F</string>
+ <string>8B793C3C21F5FF8A006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460888.62616801</real>
+ <real>569769866.66388798</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7B4F1F7FAC58007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/project.pbxproj b/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/project.pbxproj
index 2863d6b..80d9369 100755
--- a/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/IronOxideClassic/IronOxideClassic.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* IronOxideClassic */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "IronOxideClassic" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
+ 8D01CCC60486CAD60068D4B7 /* IronOxideClassic */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/IronOxideClassic/source/IronOxideClassic.cpp b/plugins/MacVST/IronOxideClassic/source/IronOxideClassic.cpp
index 012d8a3..8ce7103 100755
--- a/plugins/MacVST/IronOxideClassic/source/IronOxideClassic.cpp
+++ b/plugins/MacVST/IronOxideClassic/source/IronOxideClassic.cpp
@@ -22,12 +22,9 @@ IronOxideClassic::IronOxideClassic(audioMasterCallback audioMaster) :
iirSampleAL = iirSampleBL = 0.0;
fastIIRAR = fastIIRBR = slowIIRAR = slowIIRBR = 0.0;
iirSampleAR = iirSampleBR = 0.0;
-
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/IronOxideClassic/source/IronOxideClassic.h b/plugins/MacVST/IronOxideClassic/source/IronOxideClassic.h
index b7f8bfa..bafb457 100755
--- a/plugins/MacVST/IronOxideClassic/source/IronOxideClassic.h
+++ b/plugins/MacVST/IronOxideClassic/source/IronOxideClassic.h
@@ -71,12 +71,9 @@ private:
double slowIIRBR;
int gcount;
-
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/IronOxideClassic/source/IronOxideClassicProc.cpp b/plugins/MacVST/IronOxideClassic/source/IronOxideClassicProc.cpp
index c245166..97bbaca 100755
--- a/plugins/MacVST/IronOxideClassic/source/IronOxideClassicProc.cpp
+++ b/plugins/MacVST/IronOxideClassic/source/IronOxideClassicProc.cpp
@@ -17,9 +17,6 @@ void IronOxideClassic::processReplacing(float **inputs, float **outputs, VstInt3
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = pow(10.0,((A*36.0)-18.0)/20.0);
double outputgain = pow(10.0,((C*36.0)-18.0)/20.0);
@@ -343,26 +340,16 @@ void IronOxideClassic::processReplacing(float **inputs, float **outputs, VstInt3
inputSampleL *= outputgain;
inputSampleR *= outputgain;
}
-
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -384,9 +371,6 @@ void IronOxideClassic::processDoubleReplacing(double **inputs, double **outputs,
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = pow(10.0,((A*36.0)-18.0)/20.0);
double outputgain = pow(10.0,((C*36.0)-18.0)/20.0);
@@ -710,26 +694,18 @@ void IronOxideClassic::processDoubleReplacing(double **inputs, double **outputs,
inputSampleL *= outputgain;
inputSampleR *= outputgain;
}
-
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Logical4/Logical4.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Logical4/Logical4.xcodeproj/christopherjohnson.pbxuser
index 7177e0c..12e473a 100755
--- a/plugins/MacVST/Logical4/Logical4.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Logical4/Logical4.xcodeproj/christopherjohnson.pbxuser
@@ -51,11 +51,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528460946;
- PBXWorkspaceStateSaveDate = 528460946;
+ PBXPerProjectTemplateStateSaveDate = 569769890;
+ PBXWorkspaceStateSaveDate = 569769890;
};
perUserProjectItems = {
- 8B9D6D9A1F7EF21C007AB60F /* PBXTextBookmark */ = 8B9D6D9A1F7EF21C007AB60F /* PBXTextBookmark */;
+ 8B793C5C21F60027006E9731 /* PBXTextBookmark */ = 8B793C5C21F60027006E9731 /* PBXTextBookmark */;
8B9D7B751F7FACB8007AB60F /* PBXTextBookmark */ = 8B9D7B751F7FACB8007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -64,23 +64,23 @@
};
2407DEB6089929BA00EB68BF /* Logical4.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {964, 3081}}";
- sepNavSelRange = "{506, 0}";
- sepNavVisRange = "{0, 1213}";
+ sepNavIntBoundsRect = "{{0, 0}, {964, 2990}}";
+ sepNavSelRange = "{1872, 0}";
+ sepNavVisRange = "{917, 1644}";
sepNavWindowFrame = "{{101, 39}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Logical4.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 2093}}";
- sepNavSelRange = "{4156, 0}";
- sepNavVisRange = "{44, 2353}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 2002}}";
+ sepNavSelRange = "{4021, 0}";
+ sepNavVisRange = "{3285, 841}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {747, 19864}}";
+ sepNavIntBoundsRect = "{{0, 0}, {747, 19877}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
@@ -88,9 +88,9 @@
};
24D8286F09A914000093AEF8 /* Logical4Proc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 23621}}";
+ sepNavIntBoundsRect = "{{0, 0}, {950, 23504}}";
sepNavSelRange = "{36787, 1892}";
- sepNavVisRange = "{2824, 2189}";
+ sepNavVisRange = "{9422, 1935}";
sepNavWindowFrame = "{{446, 47}, {895, 831}}";
};
};
@@ -108,7 +108,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6D9A1F7EF21C007AB60F /* PBXTextBookmark */ = {
+ 8B793C5C21F60027006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
diff --git a/plugins/MacVST/Logical4/Logical4.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Logical4/Logical4.xcodeproj/christopherjohnson.perspectivev3
index 053aa48..4d9ff5b 100755
--- a/plugins/MacVST/Logical4/Logical4.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Logical4/Logical4.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7B751F7FACB8007AB60F</string>
+ <string>8B793C5C21F60027006E9731</string>
<key>history</key>
<array>
- <string>8B9D6D9A1F7EF21C007AB60F</string>
+ <string>8B9D7B751F7FACB8007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>307 326 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
- <key>RubberWindowFrame</key>
- <string>307 326 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 414}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -449,7 +447,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 345}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>307 326 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7B761F7FACB8007AB60F</string>
+ <string>8B793C5D21F60027006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7B771F7FACB8007AB60F</string>
+ <string>8B793C5E21F60027006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7B781F7FACB8007AB60F</string>
+ <string>8B793C5F21F60027006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -654,7 +654,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528460984.74037701</real>
+ <real>569770023.37923205</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -671,7 +671,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7B791F7FACB8007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Logical4/Logical4.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Logical4/source/Logical4.cpp b/plugins/MacVST/Logical4/source/Logical4.cpp
index b17cc55..15d185b 100755
--- a/plugins/MacVST/Logical4/source/Logical4.cpp
+++ b/plugins/MacVST/Logical4/source/Logical4.cpp
@@ -77,12 +77,9 @@ Logical4::Logical4(audioMasterCallback audioMaster) :
gcount = 0;
//end Power Sags
-
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Logical4/source/Logical4.h b/plugins/MacVST/Logical4/source/Logical4.h
index 71e118e..fd802c8 100755
--- a/plugins/MacVST/Logical4/source/Logical4.h
+++ b/plugins/MacVST/Logical4/source/Logical4.h
@@ -143,10 +143,8 @@ private:
int gcount;
- double fpNShapeLA;
- double fpNShapeLB;
- double fpNShapeRA;
- double fpNShapeRB;
+ double fpNShapeL;
+ double fpNShapeR;
bool fpFlip;
//default stuff
diff --git a/plugins/MacVST/Logical4/source/Logical4Proc.cpp b/plugins/MacVST/Logical4/source/Logical4Proc.cpp
index 0d09fcf..5d079f3 100755
--- a/plugins/MacVST/Logical4/source/Logical4Proc.cpp
+++ b/plugins/MacVST/Logical4/source/Logical4Proc.cpp
@@ -17,9 +17,8 @@ void Logical4::processReplacing(float **inputs, float **outputs, VstInt32 sample
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- double fpOld = 0.618033988749894848204586; //golden ratio!
- double fpNew = 1.0 - fpOld;
+ long double fpOld = 0.618033988749894848204586; //golden ratio!
+ long double fpNew = 1.0 - fpOld;
float drySampleL;
float drySampleR;
@@ -869,27 +868,17 @@ void Logical4::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleL = (inputSampleL * wet) + (drySampleL * dry);
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
+ fpFlip = !fpFlip;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -911,9 +900,8 @@ void Logical4::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- double fpOld = 0.618033988749894848204586; //golden ratio!
- double fpNew = 1.0 - fpOld;
+ long double fpOld = 0.618033988749894848204586; //golden ratio!
+ long double fpNew = 1.0 - fpOld;
float drySampleL;
float drySampleR;
@@ -1762,26 +1750,18 @@ void Logical4::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleL = (inputSampleL * wet) + (drySampleL * dry);
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
-
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Loud/Loud.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Loud/Loud.xcodeproj/christopherjohnson.pbxuser
index 6c66b21..0bed7c5 100755
--- a/plugins/MacVST/Loud/Loud.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Loud/Loud.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 541203976;
- PBXWorkspaceStateSaveDate = 541203976;
+ PBXPerProjectTemplateStateSaveDate = 569770045;
+ PBXWorkspaceStateSaveDate = 569770045;
};
perUserProjectItems = {
- 8B277E0D1FD86E330038EA07 /* PBXTextBookmark */ = 8B277E0D1FD86E330038EA07 /* PBXTextBookmark */;
+ 8B793C7221F60046006E9731 /* PBXTextBookmark */ = 8B793C7221F60046006E9731 /* PBXTextBookmark */;
8BCEFAAE2042230B002E8187 /* PBXTextBookmark */ = 8BCEFAAE2042230B002E8187 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -106,7 +106,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B277E0D1FD86E330038EA07 /* PBXTextBookmark */ = {
+ 8B793C7221F60046006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
diff --git a/plugins/MacVST/Loud/Loud.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Loud/Loud.xcodeproj/christopherjohnson.perspectivev3
index 7b79c6f..a60b90a 100755
--- a/plugins/MacVST/Loud/Loud.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Loud/Loud.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BCEFAAE2042230B002E8187</string>
+ <string>8B793C7221F60046006E9731</string>
<key>history</key>
<array>
- <string>8B277E0D1FD86E330038EA07</string>
+ <string>8BCEFAAE2042230B002E8187</string>
</array>
</dict>
<key>SplitCount</key>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BCEFAAF2042230B002E8187</string>
+ <string>8B793C7321F60046006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BCEFAB02042230B002E8187</string>
+ <string>8B793C7421F60046006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BCEFAB12042230B002E8187</string>
+ <string>8B793C7521F60046006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>541205259.86103797</real>
+ <real>569770054.94940603</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BCEFAB22042230B002E8187</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Loud/Loud.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Loud/source/Loud.cpp b/plugins/MacVST/Loud/source/Loud.cpp
index 43f7ffc..009124d 100755
--- a/plugins/MacVST/Loud/source/Loud.cpp
+++ b/plugins/MacVST/Loud/source/Loud.cpp
@@ -15,11 +15,8 @@ Loud::Loud(audioMasterCallback audioMaster) :
A = 0.0;
B = 1.0;
C = 1.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Loud/source/Loud.h b/plugins/MacVST/Loud/source/Loud.h
index 85b66a2..17537c2 100755
--- a/plugins/MacVST/Loud/source/Loud.h
+++ b/plugins/MacVST/Loud/source/Loud.h
@@ -56,11 +56,8 @@ private:
double lastSampleL;
double lastSampleR;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Loud/source/LoudProc.cpp b/plugins/MacVST/Loud/source/LoudProc.cpp
index 8aedede..35ee29b 100755
--- a/plugins/MacVST/Loud/source/LoudProc.cpp
+++ b/plugins/MacVST/Loud/source/LoudProc.cpp
@@ -18,9 +18,6 @@ void Loud::processReplacing(float **inputs, float **outputs, VstInt32 sampleFram
overallscale /= 44100.0;
overallscale *= getSampleRate();
double boost = pow(A+1.0,5);
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double output = B;
double wet = C;
double dry = 1.0-wet;
@@ -143,25 +140,14 @@ void Loud::processReplacing(float **inputs, float **outputs, VstInt32 sampleFram
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -184,9 +170,6 @@ void Loud::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
overallscale /= 44100.0;
overallscale *= getSampleRate();
double boost = pow(A+1.0,5);
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double output = B;
double wet = C;
double dry = 1.0-wet;
@@ -308,25 +291,16 @@ void Loud::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Lowpass/Lowpass.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Lowpass/Lowpass.xcodeproj/christopherjohnson.pbxuser
index e5aba92..8c9ad70 100755
--- a/plugins/MacVST/Lowpass/Lowpass.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Lowpass/Lowpass.xcodeproj/christopherjohnson.pbxuser
@@ -49,14 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461025;
- PBXWorkspaceStateSaveDate = 528461025;
+ PBXPerProjectTemplateStateSaveDate = 569770101;
+ PBXWorkspaceStateSaveDate = 569770101;
};
perUserProjectItems = {
8B22B1231DB18F4A0075D7AA /* PBXTextBookmark */ = 8B22B1231DB18F4A0075D7AA /* PBXTextBookmark */;
8B22B1531DB190EA0075D7AA /* PBXTextBookmark */ = 8B22B1531DB190EA0075D7AA /* PBXTextBookmark */;
- 8B9D6DDA1F7EF2A5007AB60F /* PBXTextBookmark */ = 8B9D6DDA1F7EF2A5007AB60F /* PBXTextBookmark */;
- 8B9D7BAB1F7FACF3007AB60F /* PBXTextBookmark */ = 8B9D7BAB1F7FACF3007AB60F /* PBXTextBookmark */;
+ 8B793C9021F6007F006E9731 /* PBXTextBookmark */ = 8B793C9021F6007F006E9731 /* PBXTextBookmark */;
+ 8B793C9521F600A2006E9731 /* PBXTextBookmark */ = 8B793C9521F600A2006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -64,17 +64,17 @@
};
2407DEB6089929BA00EB68BF /* Lowpass.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1911}}";
- sepNavSelRange = "{455, 0}";
- sepNavVisRange = "{0, 1921}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1898}}";
+ sepNavSelRange = "{598, 0}";
+ sepNavVisRange = "{0, 1951}";
sepNavWindowFrame = "{{330, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Lowpass.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {859, 936}}";
- sepNavSelRange = "{2574, 84}";
- sepNavVisRange = "{2517, 153}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 767}}";
+ sepNavSelRange = "{2605, 0}";
+ sepNavVisRange = "{2427, 182}";
sepNavWindowFrame = "{{61, 47}, {895, 831}}";
};
};
@@ -113,7 +113,7 @@
fRef = 2407DEB6089929BA00EB68BF /* Lowpass.cpp */;
name = "Lowpass.cpp: 51";
rLen = 0;
- rLoc = 1842;
+ rLoc = 1858;
rType = 0;
vrLen = 71;
vrLoc = 1746;
@@ -128,25 +128,25 @@
vrLen = 707;
vrLoc = 10342;
};
- 8B9D6DDA1F7EF2A5007AB60F /* PBXTextBookmark */ = {
+ 8B793C9021F6007F006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* Lowpass.h */;
name = "Lowpass.h: 67";
- rLen = 84;
+ rLen = 43;
rLoc = 2574;
rType = 0;
- vrLen = 167;
- vrLoc = 2503;
+ vrLen = 194;
+ vrLoc = 2398;
};
- 8B9D7BAB1F7FACF3007AB60F /* PBXTextBookmark */ = {
+ 8B793C9521F600A2006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* Lowpass.h */;
- name = "Lowpass.h: 67";
- rLen = 84;
- rLoc = 2574;
+ name = "Lowpass.h: 68";
+ rLen = 0;
+ rLoc = 2605;
rType = 0;
- vrLen = 153;
- vrLoc = 2517;
+ vrLen = 182;
+ vrLoc = 2427;
};
8D01CCC60486CAD60068D4B7 /* Lowpass */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Lowpass/Lowpass.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Lowpass/Lowpass.xcodeproj/christopherjohnson.perspectivev3
index fcf5254..bb86e03 100755
--- a/plugins/MacVST/Lowpass/Lowpass.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Lowpass/Lowpass.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -351,12 +351,12 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7BAB1F7FACF3007AB60F</string>
+ <string>8B793C9521F600A2006E9731</string>
<key>history</key>
<array>
<string>8B22B1231DB18F4A0075D7AA</string>
<string>8B22B1531DB190EA0075D7AA</string>
- <string>8B9D6DDA1F7EF2A5007AB60F</string>
+ <string>8B793C9021F6007F006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -370,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 194}}</string>
+ <string>{{0, 0}, {603, 182}}</string>
<key>RubberWindowFrame</key>
<string>355 287 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>194pt</string>
+ <string>182pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>247pt</string>
+ <string>259pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -395,9 +395,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 220}}</string>
- <key>RubberWindowFrame</key>
- <string>355 287 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 232}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -451,7 +449,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 178}}</string>
+ <string>{{10, 27}, {603, 232}}</string>
+ <key>RubberWindowFrame</key>
+ <string>355 287 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -479,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7BAC1F7FACF3007AB60F</string>
+ <string>8B793C9621F600A2006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7BAD1F7FACF3007AB60F</string>
+ <string>8B793C9721F600A2006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7BAE1F7FACF3007AB60F</string>
+ <string>8B793C9821F600A2006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -636,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461043.96388102</real>
+ <real>569770146.430691</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -653,7 +653,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7BAF1F7FACF3007AB60F</string>
+ <string>8B793C9921F600A2006E9731</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Lowpass/Lowpass.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Lowpass/source/Lowpass.cpp b/plugins/MacVST/Lowpass/source/Lowpass.cpp
index 8178799..18064fc 100755
--- a/plugins/MacVST/Lowpass/source/Lowpass.cpp
+++ b/plugins/MacVST/Lowpass/source/Lowpass.cpp
@@ -19,10 +19,8 @@ Lowpass::Lowpass(audioMasterCallback audioMaster) :
iirSampleBL = 0.0;
iirSampleAR = 0.0;
iirSampleBR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
fpFlip = true;
//this is reset: values being initialized only once. Startup values, whatever they are.
diff --git a/plugins/MacVST/Lowpass/source/Lowpass.h b/plugins/MacVST/Lowpass/source/Lowpass.h
index 1b99c55..40ac456 100755
--- a/plugins/MacVST/Lowpass/source/Lowpass.h
+++ b/plugins/MacVST/Lowpass/source/Lowpass.h
@@ -54,11 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
@@ -68,7 +65,7 @@ private:
double iirSampleBL;
double iirSampleAR;
double iirSampleBR;
-
+ bool fpFlip;
};
#endif
diff --git a/plugins/MacVST/Lowpass/source/LowpassProc.cpp b/plugins/MacVST/Lowpass/source/LowpassProc.cpp
index bcce714..bcc3690 100755
--- a/plugins/MacVST/Lowpass/source/LowpassProc.cpp
+++ b/plugins/MacVST/Lowpass/source/LowpassProc.cpp
@@ -27,9 +27,6 @@ void Lowpass::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
double inputSampleR;
double outputSampleL;
double outputSampleR;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
iirAmount += (iirAmount * tight * tight);
if (tight > 0) tight /= 1.5;
@@ -116,33 +113,21 @@ void Lowpass::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
iirSampleBR = (iirSampleBR * (1 - (offset * iirAmount))) + (inputSampleR * (offset * iirAmount));
outputSampleR = iirSampleBR;
}
+ fpFlip = !fpFlip;
if (wet < 1.0) outputSampleL = (outputSampleL * wet) + (inputSampleL * dry);
if (wet < 1.0) outputSampleR = (outputSampleR * wet) + (inputSampleR * dry);
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = outputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((outputSampleL-fpTemp)*fpNew);
- outputSampleL += fpNShapeLA;
-
- fpTemp = outputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((outputSampleR-fpTemp)*fpNew);
- outputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = outputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((outputSampleL-fpTemp)*fpNew);
- outputSampleL += fpNShapeLB;
-
- fpTemp = outputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((outputSampleR-fpTemp)*fpNew);
- outputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = outputSampleL;
*out2 = outputSampleR;
@@ -174,9 +159,6 @@ void Lowpass::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double inputSampleR;
double outputSampleL;
double outputSampleR;
- double fpTemp;
- double fpOld = 0.618033988749894848204586; //golden ratio!
- double fpNew = 1.0 - fpOld;
iirAmount += (iirAmount * tight * tight);
if (tight > 0) tight /= 1.5;
@@ -263,33 +245,23 @@ void Lowpass::processDoubleReplacing(double **inputs, double **outputs, VstInt32
iirSampleBR = (iirSampleBR * (1 - (offset * iirAmount))) + (inputSampleR * (offset * iirAmount));
outputSampleR = iirSampleBR;
}
+ fpFlip = !fpFlip;
if (wet < 1.0) outputSampleL = (outputSampleL * wet) + (inputSampleL * dry);
if (wet < 1.0) outputSampleR = (outputSampleR * wet) + (inputSampleR * dry);
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = outputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((outputSampleL-fpTemp)*fpNew);
- outputSampleL += fpNShapeLA;
-
- fpTemp = outputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((outputSampleR-fpTemp)*fpNew);
- outputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = outputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((outputSampleL-fpTemp)*fpNew);
- outputSampleL += fpNShapeLB;
-
- fpTemp = outputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((outputSampleR-fpTemp)*fpNew);
- outputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = outputSampleL;
*out2 = outputSampleR;
diff --git a/plugins/MacVST/Melt/Melt.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Melt/Melt.xcodeproj/christopherjohnson.pbxuser
index d275953..3b3fdf3 100755
--- a/plugins/MacVST/Melt/Melt.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Melt/Melt.xcodeproj/christopherjohnson.pbxuser
@@ -51,11 +51,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461053;
- PBXWorkspaceStateSaveDate = 528461053;
+ PBXPerProjectTemplateStateSaveDate = 569770170;
+ PBXWorkspaceStateSaveDate = 569770170;
};
perUserProjectItems = {
- 8B9D6DFA1F7EF323007AB60F /* PBXTextBookmark */ = 8B9D6DFA1F7EF323007AB60F /* PBXTextBookmark */;
+ 8B793CB821F600C5006E9731 /* PBXTextBookmark */ = 8B793CB821F600C5006E9731 /* PBXTextBookmark */;
8B9D7BCD1F7FAD1A007AB60F /* PBXTextBookmark */ = 8B9D7BCD1F7FAD1A007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -88,7 +88,7 @@
};
24D8286F09A914000093AEF8 /* MeltProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 7800}}";
+ sepNavIntBoundsRect = "{{0, 0}, {621, 7371}}";
sepNavSelRange = "{19360, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{254, 39}, {895, 831}}";
@@ -108,10 +108,10 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6DFA1F7EF323007AB60F /* PBXTextBookmark */ = {
+ 8B793CB821F600C5006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* MeltProc.cpp */;
- name = "MeltProc.cpp: 558";
+ name = "MeltProc.cpp: 553";
rLen = 0;
rLoc = 19360;
rType = 0;
diff --git a/plugins/MacVST/Melt/Melt.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Melt/Melt.xcodeproj/christopherjohnson.perspectivev3
index edef64c..e6e1617 100755
--- a/plugins/MacVST/Melt/Melt.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Melt/Melt.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7BCD1F7FAD1A007AB60F</string>
+ <string>8B793CB821F600C5006E9731</string>
<key>history</key>
<array>
- <string>8B9D6DFA1F7EF323007AB60F</string>
+ <string>8B9D7BCD1F7FAD1A007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>339 331 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
<string>339 331 810 487 0 0 1440 878 </string>
</dict>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7BCE1F7FAD1A007AB60F</string>
+ <string>8B793CB921F600C5006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7BCF1F7FAD1A007AB60F</string>
+ <string>8B793CBA21F600C5006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7BD01F7FAD1A007AB60F</string>
+ <string>8B793CBB21F600C5006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -654,7 +654,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461082.07116401</real>
+ <real>569770181.85578704</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -671,7 +671,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7BD11F7FAD1A007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Melt/Melt.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Melt/source/Melt.cpp b/plugins/MacVST/Melt/source/Melt.cpp
index 9722e1f..35ede1e 100755
--- a/plugins/MacVST/Melt/source/Melt.cpp
+++ b/plugins/MacVST/Melt/source/Melt.cpp
@@ -26,11 +26,8 @@ Melt::Melt(audioMasterCallback audioMaster) :
slowCount = 0;
gcount = 0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Melt/source/Melt.h b/plugins/MacVST/Melt/source/Melt.h
index a8e0f38..af11f0f 100755
--- a/plugins/MacVST/Melt/source/Melt.h
+++ b/plugins/MacVST/Melt/source/Melt.h
@@ -70,11 +70,8 @@ private:
int slowCount;
int gcount;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Melt/source/MeltProc.cpp b/plugins/MacVST/Melt/source/MeltProc.cpp
index 48a1c11..8a55732 100755
--- a/plugins/MacVST/Melt/source/MeltProc.cpp
+++ b/plugins/MacVST/Melt/source/MeltProc.cpp
@@ -21,9 +21,6 @@ void Melt::processReplacing(float **inputs, float **outputs, VstInt32 sampleFram
double wet = D;
double dry = 1.0-wet;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -271,25 +268,14 @@ void Melt::processReplacing(float **inputs, float **outputs, VstInt32 sampleFram
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -315,9 +301,6 @@ void Melt::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
double wet = D;
double dry = 1.0-wet;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -565,25 +548,16 @@ void Melt::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sa
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/MidSide/MidSide.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/MidSide/MidSide.xcodeproj/christopherjohnson.pbxuser
index ec9df9a..62992ba 100755
--- a/plugins/MacVST/MidSide/MidSide.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/MidSide/MidSide.xcodeproj/christopherjohnson.pbxuser
@@ -51,11 +51,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461091;
- PBXWorkspaceStateSaveDate = 528461091;
+ PBXPerProjectTemplateStateSaveDate = 569770425;
+ PBXWorkspaceStateSaveDate = 569770425;
};
perUserProjectItems = {
- 8B9D6E101F7EF349007AB60F /* PBXTextBookmark */ = 8B9D6E101F7EF349007AB60F /* PBXTextBookmark */;
+ 8B793CDA21F601C2006E9731 /* PBXTextBookmark */ = 8B793CDA21F601C2006E9731 /* PBXTextBookmark */;
8B9D7BED1F7FAD3F007AB60F /* PBXTextBookmark */ = 8B9D7BED1F7FAD3F007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -108,7 +108,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6E101F7EF349007AB60F /* PBXTextBookmark */ = {
+ 8B793CDA21F601C2006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
diff --git a/plugins/MacVST/MidSide/MidSide.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/MidSide/MidSide.xcodeproj/christopherjohnson.perspectivev3
index b6def9d..721ff92 100755
--- a/plugins/MacVST/MidSide/MidSide.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/MidSide/MidSide.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7BED1F7FAD3F007AB60F</string>
+ <string>8B793CDA21F601C2006E9731</string>
<key>history</key>
<array>
- <string>8B9D6E101F7EF349007AB60F</string>
+ <string>8B9D7BED1F7FAD3F007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7BEE1F7FAD3F007AB60F</string>
+ <string>8B793CDB21F601C2006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7BEF1F7FAD3F007AB60F</string>
+ <string>8B793CDC21F601C2006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7BF01F7FAD3F007AB60F</string>
+ <string>8B793CDD21F601C2006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -654,7 +654,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461119.98817199</real>
+ <real>569770434.56493402</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -671,7 +671,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7BF11F7FAD3F007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/MidSide/MidSide.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/MidSide/source/MidSide.cpp b/plugins/MacVST/MidSide/source/MidSide.cpp
index bc37393..8f61cff 100755
--- a/plugins/MacVST/MidSide/source/MidSide.cpp
+++ b/plugins/MacVST/MidSide/source/MidSide.cpp
@@ -13,11 +13,8 @@ MidSide::MidSide(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/MidSide/source/MidSide.h b/plugins/MacVST/MidSide/source/MidSide.h
index 28b2ae7..4d139c8 100755
--- a/plugins/MacVST/MidSide/source/MidSide.h
+++ b/plugins/MacVST/MidSide/source/MidSide.h
@@ -52,11 +52,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/MidSide/source/MidSideProc.cpp b/plugins/MacVST/MidSide/source/MidSideProc.cpp
index 2df14f4..cca7a5c 100755
--- a/plugins/MacVST/MidSide/source/MidSideProc.cpp
+++ b/plugins/MacVST/MidSide/source/MidSideProc.cpp
@@ -14,9 +14,6 @@ void MidSide::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -76,25 +73,14 @@ void MidSide::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
mid *= midgain;
side *= sidegain;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = mid;
- fpNShapeLA = (fpNShapeLA*fpOld)+((mid-fpTemp)*fpNew);
- mid += fpNShapeLA;
- fpTemp = side;
- fpNShapeRA = (fpNShapeRA*fpOld)+((side-fpTemp)*fpNew);
- side += fpNShapeRA;
- }
- else {
- fpTemp = mid;
- fpNShapeLB = (fpNShapeLB*fpOld)+((mid-fpTemp)*fpNew);
- mid += fpNShapeLB;
- fpTemp = side;
- fpNShapeRB = (fpNShapeRB*fpOld)+((side-fpTemp)*fpNew);
- side += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)mid, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ mid += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)side, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ side += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = mid;
*out2 = side;
@@ -113,9 +99,6 @@ void MidSide::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -175,25 +158,16 @@ void MidSide::processDoubleReplacing(double **inputs, double **outputs, VstInt32
mid *= midgain;
side *= sidegain;
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = mid;
- fpNShapeLA = (fpNShapeLA*fpOld)+((mid-fpTemp)*fpNew);
- mid += fpNShapeLA;
- fpTemp = side;
- fpNShapeRA = (fpNShapeRA*fpOld)+((side-fpTemp)*fpNew);
- side += fpNShapeRA;
- }
- else {
- fpTemp = mid;
- fpNShapeLB = (fpNShapeLB*fpOld)+((mid-fpTemp)*fpNew);
- mid += fpNShapeLB;
- fpTemp = side;
- fpNShapeRB = (fpNShapeRB*fpOld)+((side-fpTemp)*fpNew);
- side += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)mid, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ mid += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)side, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ side += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = mid;
*out2 = side;
diff --git a/plugins/MacVST/NCSeventeen/NCSeventeen.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/NCSeventeen/NCSeventeen.xcodeproj/christopherjohnson.pbxuser
index 33122fe..b951dba 100755
--- a/plugins/MacVST/NCSeventeen/NCSeventeen.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/NCSeventeen/NCSeventeen.xcodeproj/christopherjohnson.pbxuser
@@ -49,16 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 531745203;
- PBXWorkspaceStateSaveDate = 531745203;
+ PBXPerProjectTemplateStateSaveDate = 569770459;
+ PBXWorkspaceStateSaveDate = 569770459;
};
perUserProjectItems = {
8B6692F41FB1C728007B3434 /* PBXTextBookmark */ = 8B6692F41FB1C728007B3434 /* PBXTextBookmark */;
- 8B6692F61FB1C728007B3434 /* PBXTextBookmark */ = 8B6692F61FB1C728007B3434 /* PBXTextBookmark */;
8B67C7A21FA3B4CC008C64D6 /* PBXTextBookmark */ = 8B67C7A21FA3B4CC008C64D6 /* PBXTextBookmark */;
- 8BE0C0611FB1C9B7000B2082 /* PBXBookmark */ = 8BE0C0611FB1C9B7000B2082 /* PBXBookmark */;
+ 8B793CFA21F601E6006E9731 /* PBXTextBookmark */ = 8B793CFA21F601E6006E9731 /* PBXTextBookmark */;
8BE0C0701FB1C9E6000B2082 /* PBXTextBookmark */ = 8BE0C0701FB1C9E6000B2082 /* PBXTextBookmark */;
- 8BE0C0761FB1C9E6000B2082 /* PBXTextBookmark */ = 8BE0C0761FB1C9E6000B2082 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -74,9 +72,9 @@
};
245463B80991757100464AD3 /* NCSeventeen.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {859, 1092}}";
+ sepNavIntBoundsRect = "{{0, 0}, {817, 1105}}";
sepNavSelRange = "{2660, 0}";
- sepNavVisRange = "{2280, 147}";
+ sepNavVisRange = "{2320, 107}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
@@ -90,9 +88,9 @@
};
24D8286F09A914000093AEF8 /* NCSeventeenProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1250, 9984}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1250, 9802}}";
sepNavSelRange = "{1603, 0}";
- sepNavVisRange = "{15480, 1916}";
+ sepNavVisRange = "{15441, 2003}";
sepNavWindowFrame = "{{13, 39}, {1297, 839}}";
};
};
@@ -120,16 +118,6 @@
vrLen = 159;
vrLoc = 16026;
};
- 8B6692F61FB1C728007B3434 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* NCSeventeen.h */;
- name = "NCSeventeen.h: 69";
- rLen = 0;
- rLoc = 2660;
- rType = 0;
- vrLen = 258;
- vrLoc = 2169;
- };
8B67C7A21FA3B4CC008C64D6 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
@@ -140,29 +128,25 @@
vrLen = 399;
vrLoc = 10459;
};
- 8BE0C0611FB1C9B7000B2082 /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 24D8286F09A914000093AEF8 /* NCSeventeenProc.cpp */;
- };
- 8BE0C0701FB1C9E6000B2082 /* PBXTextBookmark */ = {
+ 8B793CFA21F601E6006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* NCSeventeen.h */;
name = "NCSeventeen.h: 69";
rLen = 0;
rLoc = 2660;
rType = 0;
- vrLen = 147;
- vrLoc = 2280;
+ vrLen = 107;
+ vrLoc = 2320;
};
- 8BE0C0761FB1C9E6000B2082 /* PBXTextBookmark */ = {
+ 8BE0C0701FB1C9E6000B2082 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* NCSeventeenProc.cpp */;
- name = "NCSeventeenProc.cpp: 58";
+ fRef = 245463B80991757100464AD3 /* NCSeventeen.h */;
+ name = "NCSeventeen.h: 69";
rLen = 0;
- rLoc = 1603;
+ rLoc = 2660;
rType = 0;
- vrLen = 1916;
- vrLoc = 15480;
+ vrLen = 147;
+ vrLoc = 2280;
};
8D01CCC60486CAD60068D4B7 /* NCSeventeen */ = {
activeExec = 0;
diff --git a/plugins/MacVST/NCSeventeen/NCSeventeen.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/NCSeventeen/NCSeventeen.xcodeproj/christopherjohnson.perspectivev3
index 3b7ecb3..89e1157 100755
--- a/plugins/MacVST/NCSeventeen/NCSeventeen.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/NCSeventeen/NCSeventeen.xcodeproj/christopherjohnson.perspectivev3
@@ -222,48 +222,7 @@
</dict>
</array>
<key>OpenEditors</key>
- <array>
- <dict>
- <key>Content</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8BE0C0741FB1C9E6000B2082</string>
- <key>PBXProjectModuleLabel</key>
- <string>NCSeventeenProc.cpp</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8BE0C0751FB1C9E6000B2082</string>
- <key>PBXProjectModuleLabel</key>
- <string>NCSeventeenProc.cpp</string>
- <key>_historyCapacity</key>
- <integer>0</integer>
- <key>bookmark</key>
- <string>8BE0C0761FB1C9E6000B2082</string>
- <key>history</key>
- <array>
- <string>8BE0C0611FB1C9B7000B2082</string>
- </array>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
- <key>StatusBarVisibility</key>
- <true/>
- </dict>
- <key>Geometry</key>
- <dict>
- <key>Frame</key>
- <string>{{0, 20}, {1297, 742}}</string>
- <key>PBXModuleWindowStatusBarHidden2</key>
- <false/>
- <key>RubberWindowFrame</key>
- <string>13 95 1297 783 0 0 1440 878 </string>
- </dict>
- </dict>
- </array>
+ <array/>
<key>PerspectiveWidths</key>
<array>
<integer>810</integer>
@@ -392,12 +351,12 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BE0C0701FB1C9E6000B2082</string>
+ <string>8B793CFA21F601E6006E9731</string>
<key>history</key>
<array>
<string>8B67C7A21FA3B4CC008C64D6</string>
<string>8B6692F41FB1C728007B3434</string>
- <string>8B6692F61FB1C728007B3434</string>
+ <string>8BE0C0701FB1C9E6000B2082</string>
</array>
</dict>
<key>SplitCount</key>
@@ -411,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 102}}</string>
+ <string>{{0, 0}, {603, 86}}</string>
<key>RubberWindowFrame</key>
<string>249 231 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>102pt</string>
+ <string>86pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>339pt</string>
+ <string>355pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -436,7 +395,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 312}}</string>
+ <string>{{10, 27}, {603, 328}}</string>
<key>RubberWindowFrame</key>
<string>249 231 810 487 0 0 1440 878 </string>
</dict>
@@ -520,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BE0C0711FB1C9E6000B2082</string>
+ <string>8B793CFB21F601E6006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BE0C0721FB1C9E6000B2082</string>
+ <string>8B793CFC21F601E6006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BE0C0731FB1C9E6000B2082</string>
+ <string>8B793CFD21F601E6006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -677,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>531745254.79790598</real>
+ <real>569770470.40799499</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -695,7 +654,6 @@
<key>WindowOrderList</key>
<array>
<string>/Users/christopherjohnson/Desktop/MacVST/NCSeventeen/NCSeventeen.xcodeproj</string>
- <string>8BE0C0741FB1C9E6000B2082</string>
</array>
<key>WindowString</key>
<string>249 231 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/NCSeventeen/source/NCSeventeen.cpp b/plugins/MacVST/NCSeventeen/source/NCSeventeen.cpp
index 9bc129a..409f983 100755
--- a/plugins/MacVST/NCSeventeen/source/NCSeventeen.cpp
+++ b/plugins/MacVST/NCSeventeen/source/NCSeventeen.cpp
@@ -31,11 +31,8 @@ NCSeventeen::NCSeventeen(audioMasterCallback audioMaster) :
flip = false;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/NCSeventeen/source/NCSeventeen.h b/plugins/MacVST/NCSeventeen/source/NCSeventeen.h
index 01179e9..b3ecd94 100755
--- a/plugins/MacVST/NCSeventeen/source/NCSeventeen.h
+++ b/plugins/MacVST/NCSeventeen/source/NCSeventeen.h
@@ -70,11 +70,8 @@ private:
bool flip;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/NCSeventeen/source/NCSeventeenProc.cpp b/plugins/MacVST/NCSeventeen/source/NCSeventeenProc.cpp
index b2f2aa1..e124cb5 100755
--- a/plugins/MacVST/NCSeventeen/source/NCSeventeenProc.cpp
+++ b/plugins/MacVST/NCSeventeen/source/NCSeventeenProc.cpp
@@ -19,9 +19,6 @@ void NCSeventeen::processReplacing(float **inputs, float **outputs, VstInt32 sam
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double IIRscaleback = 0.0004716;
double bassScaleback = 0.0002364;
@@ -347,25 +344,14 @@ void NCSeventeen::processReplacing(float **inputs, float **outputs, VstInt32 sam
if (inputSampleR < -0.95) inputSampleR = -0.95;
//iron bar
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -389,9 +375,6 @@ void NCSeventeen::processDoubleReplacing(double **inputs, double **outputs, VstI
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double IIRscaleback = 0.0004716;
double bassScaleback = 0.0002364;
@@ -716,25 +699,16 @@ void NCSeventeen::processDoubleReplacing(double **inputs, double **outputs, VstI
if (inputSampleR < -0.95) inputSampleR = -0.95;
//iron bar
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Noise/Noise.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Noise/Noise.xcodeproj/christopherjohnson.pbxuser
index bd35d43..6370236 100755
--- a/plugins/MacVST/Noise/Noise.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Noise/Noise.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 538707186;
- PBXWorkspaceStateSaveDate = 538707186;
+ PBXPerProjectTemplateStateSaveDate = 569770541;
+ PBXWorkspaceStateSaveDate = 569770541;
};
perUserProjectItems = {
8B4E5870201C0C8B00B5DC2A /* PBXTextBookmark */ = 8B4E5870201C0C8B00B5DC2A /* PBXTextBookmark */;
- 8B7ADC6220157443005F895F /* PBXTextBookmark */ = 8B7ADC6220157443005F895F /* PBXTextBookmark */;
+ 8B793D1A21F60235006E9731 /* PBXTextBookmark */ = 8B793D1A21F60235006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -70,7 +70,7 @@
};
245463B80991757100464AD3 /* Noise.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {859, 1170}}";
+ sepNavIntBoundsRect = "{{0, 0}, {523, 1300}}";
sepNavSelRange = "{2962, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{895, 11}, {895, 831}}";
@@ -116,15 +116,15 @@
vrLen = 0;
vrLoc = 0;
};
- 8B7ADC6220157443005F895F /* PBXTextBookmark */ = {
+ 8B793D1A21F60235006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* Noise.h */;
- name = "Noise.h: 95";
+ name = "Noise.h: 93";
rLen = 0;
rLoc = 2962;
rType = 0;
- vrLen = 638;
- vrLoc = 1696;
+ vrLen = 0;
+ vrLoc = 0;
};
8D01CCC60486CAD60068D4B7 /* Noise */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Noise/Noise.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Noise/Noise.xcodeproj/christopherjohnson.perspectivev3
index cddeac8..9dc310c 100755
--- a/plugins/MacVST/Noise/Noise.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Noise/Noise.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B4E5870201C0C8B00B5DC2A</string>
+ <string>8B793D1A21F60235006E9731</string>
<key>history</key>
<array>
- <string>8B7ADC6220157443005F895F</string>
+ <string>8B4E5870201C0C8B00B5DC2A</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {454, 9}}</string>
+ <string>{{0, 0}, {454, 0}}</string>
<key>RubberWindowFrame</key>
<string>26 91 661 394 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>9pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>339pt</string>
+ <string>348pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {454, 312}}</string>
+ <string>{{10, 27}, {454, 321}}</string>
<key>RubberWindowFrame</key>
<string>26 91 661 394 0 0 1440 878 </string>
</dict>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4E5871201C0C8B00B5DC2A</string>
+ <string>8B793D1B21F60235006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4E5872201C0C8B00B5DC2A</string>
+ <string>8B793D1C21F60235006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4E5873201C0C8B00B5DC2A</string>
+ <string>8B793D1D21F60235006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>538709131.54011202</real>
+ <real>569770549.64791</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
diff --git a/plugins/MacVST/Noise/source/Noise.cpp b/plugins/MacVST/Noise/source/Noise.cpp
index 76d00c8..d955a29 100755
--- a/plugins/MacVST/Noise/source/Noise.cpp
+++ b/plugins/MacVST/Noise/source/Noise.cpp
@@ -36,11 +36,8 @@ Noise::Noise(audioMasterCallback audioMaster) :
flipR = false;
filterflip = false;
for(int count = 0; count < 11; count++) {bL[count] = 0.0; bR[count] = 0.0; f[count] = 0.0;}
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Noise/source/Noise.h b/plugins/MacVST/Noise/source/Noise.h
index 0ee4d76..67c32bc 100755
--- a/plugins/MacVST/Noise/source/Noise.h
+++ b/plugins/MacVST/Noise/source/Noise.h
@@ -81,11 +81,8 @@ private:
double f[11];
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Noise/source/NoiseProc.cpp b/plugins/MacVST/Noise/source/NoiseProc.cpp
index e185120..31cba20 100755
--- a/plugins/MacVST/Noise/source/NoiseProc.cpp
+++ b/plugins/MacVST/Noise/source/NoiseProc.cpp
@@ -104,9 +104,6 @@ void Noise::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
f[9] /= overallscale;
//and now it's neatly scaled, too
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
@@ -299,25 +296,14 @@ void Noise::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
//sometimes I'm really tired and can't do stuff, and I remember trying to simplify this
//and breaking it somehow. So, there ya go, strange obtuse code.
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -426,9 +412,6 @@ void Noise::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
f[9] /= overallscale;
//and now it's neatly scaled, too
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
while (--sampleFrames >= 0)
{
@@ -619,25 +602,16 @@ void Noise::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
//sometimes I'm really tired and can't do stuff, and I remember trying to simplify this
//and breaking it somehow. So, there ya go, strange obtuse code.
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/christopherjohnson.pbxuser
index 2cc6a7f..b0c63ea 100755
--- a/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* NonlinearSpace */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 541896738;
- PBXWorkspaceStateSaveDate = 541896738;
+ PBXPerProjectTemplateStateSaveDate = 569770570;
+ PBXWorkspaceStateSaveDate = 569770570;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* NonlinearSpace */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/christopherjohnson.perspectivev3
index cbd5886..6658511 100755
--- a/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/christopherjohnson.perspectivev3
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B945E71204CB08000DFB653</string>
+ <string>8B793D3A21F60255006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B945E72204CB08000DFB653</string>
+ <string>8B793D3B21F60255006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B945E73204CB08000DFB653</string>
+ <string>8B793D3C21F60255006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>541896832.40515304</real>
+ <real>569770581.31031001</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
diff --git a/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/project.pbxproj b/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/project.pbxproj
index 745dea7..72507dd 100755
--- a/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/NonlinearSpace/NonlinearSpace.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* NonlinearSpace */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "NonlinearSpace" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* NonlinearSpace */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/NonlinearSpace/source/NonlinearSpace.cpp b/plugins/MacVST/NonlinearSpace/source/NonlinearSpace.cpp
index 6941556..eb05bc3 100755
--- a/plugins/MacVST/NonlinearSpace/source/NonlinearSpace.cpp
+++ b/plugins/MacVST/NonlinearSpace/source/NonlinearSpace.cpp
@@ -195,11 +195,8 @@ NonlinearSpace::NonlinearSpace(audioMasterCallback audioMaster) :
countdown = -1;
flip = true;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/NonlinearSpace/source/NonlinearSpace.h b/plugins/MacVST/NonlinearSpace/source/NonlinearSpace.h
index e915b21..dbaa0b3 100755
--- a/plugins/MacVST/NonlinearSpace/source/NonlinearSpace.h
+++ b/plugins/MacVST/NonlinearSpace/source/NonlinearSpace.h
@@ -208,11 +208,8 @@ private:
double nonlin;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/NonlinearSpace/source/NonlinearSpaceProc.cpp b/plugins/MacVST/NonlinearSpace/source/NonlinearSpaceProc.cpp
index 597e184..f9df9fc 100755
--- a/plugins/MacVST/NonlinearSpace/source/NonlinearSpaceProc.cpp
+++ b/plugins/MacVST/NonlinearSpace/source/NonlinearSpaceProc.cpp
@@ -14,9 +14,6 @@ void NonlinearSpace::processReplacing(float **inputs, float **outputs, VstInt32
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double drySampleL;
double drySampleR;
@@ -746,25 +743,14 @@ void NonlinearSpace::processReplacing(float **inputs, float **outputs, VstInt32
inputSampleR += drySampleR;
//here we combine the tanks with the dry signal
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
flip = !flip;
*out1 = inputSampleL;
@@ -784,9 +770,6 @@ void NonlinearSpace::processDoubleReplacing(double **inputs, double **outputs, V
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double drySampleL;
double drySampleR;
@@ -1516,25 +1499,16 @@ void NonlinearSpace::processDoubleReplacing(double **inputs, double **outputs, V
inputSampleR += drySampleR;
//here we combine the tanks with the dry signal
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
flip = !flip;
*out1 = inputSampleL;
diff --git a/plugins/MacVST/NotJustAnotherDither/NotJustAnotherDither.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/NotJustAnotherDither/NotJustAnotherDither.xcodeproj/christopherjohnson.pbxuser
index 0de16d2..baca580 100755
--- a/plugins/MacVST/NotJustAnotherDither/NotJustAnotherDither.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/NotJustAnotherDither/NotJustAnotherDither.xcodeproj/christopherjohnson.pbxuser
@@ -49,14 +49,14 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 547779178;
- PBXWorkspaceStateSaveDate = 547779178;
+ PBXPerProjectTemplateStateSaveDate = 557696448;
+ PBXWorkspaceStateSaveDate = 557696448;
};
perUserProjectItems = {
8B7E3DCF20A6735C00482CB5 /* PBXTextBookmark */ = 8B7E3DCF20A6735C00482CB5 /* PBXTextBookmark */;
8B7E3DD020A6735C00482CB5 /* PBXTextBookmark */ = 8B7E3DD020A6735C00482CB5 /* PBXTextBookmark */;
- 8B7E3DD120A6735C00482CB5 /* PBXTextBookmark */ = 8B7E3DD120A6735C00482CB5 /* PBXTextBookmark */;
- 8B7E3DD220A6735C00482CB5 /* PBXTextBookmark */ = 8B7E3DD220A6735C00482CB5 /* PBXTextBookmark */;
+ 8B91401D213DC60B00BA6EEC /* PBXTextBookmark */ = 8B91401D213DC60B00BA6EEC /* PBXTextBookmark */;
+ 8B91401E213DC60B00BA6EEC /* PBXTextBookmark */ = 8B91401E213DC60B00BA6EEC /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -88,10 +88,10 @@
};
24D8286F09A914000093AEF8 /* NotJustAnotherDitherProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {712, 6383}}";
+ sepNavIntBoundsRect = "{{0, 0}, {677, 6474}}";
sepNavSelRange = "{2713, 0}";
- sepNavVisRange = "{1640, 303}";
- sepNavWindowFrame = "{{624, 47}, {895, 831}}";
+ sepNavVisRange = "{1671, 272}";
+ sepNavWindowFrame = "{{545, 47}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
@@ -128,25 +128,25 @@
vrLen = 451;
vrLoc = 1431;
};
- 8B7E3DD120A6735C00482CB5 /* PBXTextBookmark */ = {
+ 8B91401D213DC60B00BA6EEC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* NotJustAnotherDitherProc.cpp */;
name = "NotJustAnotherDitherProc.cpp: 73";
rLen = 0;
rLoc = 2713;
rType = 0;
- vrLen = 303;
- vrLoc = 1640;
+ vrLen = 272;
+ vrLoc = 1671;
};
- 8B7E3DD220A6735C00482CB5 /* PBXTextBookmark */ = {
+ 8B91401E213DC60B00BA6EEC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* NotJustAnotherDitherProc.cpp */;
name = "NotJustAnotherDitherProc.cpp: 73";
rLen = 0;
rLoc = 2713;
rType = 0;
- vrLen = 303;
- vrLoc = 1640;
+ vrLen = 272;
+ vrLoc = 1671;
};
8D01CCC60486CAD60068D4B7 /* NotJustAnotherDither */ = {
activeExec = 0;
diff --git a/plugins/MacVST/NotJustAnotherDither/NotJustAnotherDither.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/NotJustAnotherDither/NotJustAnotherDither.xcodeproj/christopherjohnson.perspectivev3
index 0c4cfd9..0bb2bde 100755
--- a/plugins/MacVST/NotJustAnotherDither/NotJustAnotherDither.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/NotJustAnotherDither/NotJustAnotherDither.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>258</real>
</array>
<key>RubberWindowFrame</key>
- <string>639 259 810 487 0 0 1440 878 </string>
+ <string>630 259 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,12 +351,12 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B7E3DD220A6735C00482CB5</string>
+ <string>8B91401E213DC60B00BA6EEC</string>
<key>history</key>
<array>
<string>8B7E3DCF20A6735C00482CB5</string>
<string>8B7E3DD020A6735C00482CB5</string>
- <string>8B7E3DD120A6735C00482CB5</string>
+ <string>8B91401D213DC60B00BA6EEC</string>
</array>
</dict>
<key>SplitCount</key>
@@ -370,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {530, 132}}</string>
+ <string>{{0, 0}, {530, 117}}</string>
<key>RubberWindowFrame</key>
- <string>639 259 810 487 0 0 1440 878 </string>
+ <string>630 259 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -395,9 +395,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {530, 282}}</string>
+ <string>{{10, 27}, {530, 297}}</string>
<key>RubberWindowFrame</key>
- <string>639 259 810 487 0 0 1440 878 </string>
+ <string>630 259 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -479,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B7E3DD320A6735C00482CB5</string>
+ <string>8B91401F213DC60B00BA6EEC</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B7E3DD420A6735C00482CB5</string>
+ <string>8B914020213DC60B00BA6EEC</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B7E3DD520A6735C00482CB5</string>
+ <string>8B914021213DC60B00BA6EEC</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -636,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>547779420.72387397</real>
+ <real>557696523.36446095</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -653,11 +653,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B7E3DD620A6735C00482CB5</string>
+ <string>8B914022213DC60B00BA6EEC</string>
<string>/Users/christopherjohnson/Desktop/MacVST/NotJustAnotherDither/NotJustAnotherDither.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>639 259 810 487 0 0 1440 878 </string>
+ <string>630 259 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/christopherjohnson.pbxuser
index a659ad8..1f3a7c9 100755
--- a/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* OneCornerClip */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 541882923;
- PBXWorkspaceStateSaveDate = 541882923;
+ PBXPerProjectTemplateStateSaveDate = 569770606;
+ PBXWorkspaceStateSaveDate = 569770606;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* OneCornerClip */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/christopherjohnson.perspectivev3
index 22f0aea..07b0810 100755
--- a/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -384,6 +386,8 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>19 372 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -438,8 +442,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
- <key>RubberWindowFrame</key>
- <string>19 372 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -467,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B181A2A204C7A3200516BEE</string>
+ <string>8B793D5921F60278006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B181A2B204C7A3200516BEE</string>
+ <string>8B793D5A21F60278006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B181A2C204C7A3200516BEE</string>
+ <string>8B793D5B21F60278006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -624,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>541885613.92280805</real>
+ <real>569770616.13496995</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -641,9 +643,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B181A59204C84AD00516BEE</string>
- <string>8B181A5A204C84AD00516BEE</string>
- <string>/Users/christopherjohnson/Desktop/OneCornerClip/OneCornerClip.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/OneCornerClip/OneCornerClip.xcodeproj</string>
</array>
<key>WindowString</key>
<string>19 372 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/project.pbxproj b/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/project.pbxproj
index f6df3c9..8f62a88 100755
--- a/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/OneCornerClip/OneCornerClip.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* OneCornerClip */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "OneCornerClip" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* OneCornerClip */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/OneCornerClip/source/OneCornerClip.cpp b/plugins/MacVST/OneCornerClip/source/OneCornerClip.cpp
index bf8828e..59e2824 100755
--- a/plugins/MacVST/OneCornerClip/source/OneCornerClip.cpp
+++ b/plugins/MacVST/OneCornerClip/source/OneCornerClip.cpp
@@ -25,11 +25,8 @@ OneCornerClip::OneCornerClip(audioMasterCallback audioMaster) :
limitPosR = 0.0;
limitNegR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/OneCornerClip/source/OneCornerClip.h b/plugins/MacVST/OneCornerClip/source/OneCornerClip.h
index 07f480a..4f039fa 100755
--- a/plugins/MacVST/OneCornerClip/source/OneCornerClip.h
+++ b/plugins/MacVST/OneCornerClip/source/OneCornerClip.h
@@ -56,11 +56,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double lastSampleL;
diff --git a/plugins/MacVST/OneCornerClip/source/OneCornerClipProc.cpp b/plugins/MacVST/OneCornerClip/source/OneCornerClipProc.cpp
index 0398b60..c45c69b 100755
--- a/plugins/MacVST/OneCornerClip/source/OneCornerClipProc.cpp
+++ b/plugins/MacVST/OneCornerClip/source/OneCornerClipProc.cpp
@@ -17,9 +17,6 @@ void OneCornerClip::processReplacing(float **inputs, float **outputs, VstInt32 s
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputGain = pow(10.0,(((A*36.0)-12.0)/20.0));
double posThreshold = B;
@@ -157,25 +154,14 @@ void OneCornerClip::processReplacing(float **inputs, float **outputs, VstInt32 s
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
if (clipEngage == false)
{
@@ -204,9 +190,6 @@ void OneCornerClip::processDoubleReplacing(double **inputs, double **outputs, Vs
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputGain = pow(10.0,(((A*36.0)-12.0)/20.0));
double posThreshold = B;
@@ -345,25 +328,16 @@ void OneCornerClip::processDoubleReplacing(double **inputs, double **outputs, Vs
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
if (clipEngage == false)
{
diff --git a/plugins/MacVST/PDBuss/PDBuss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PDBuss/PDBuss.xcodeproj/christopherjohnson.pbxuser
index 1d8c78b..37b5241 100755
--- a/plugins/MacVST/PDBuss/PDBuss.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/PDBuss/PDBuss.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 538696868;
- PBXWorkspaceStateSaveDate = 538696868;
+ PBXPerProjectTemplateStateSaveDate = 569770752;
+ PBXWorkspaceStateSaveDate = 569770752;
};
perUserProjectItems = {
- 8B4E5710201BE13900B5DC2A /* PBXTextBookmark */ = 8B4E5710201BE13900B5DC2A /* PBXTextBookmark */;
8B4E574B201BE1E100B5DC2A /* PBXTextBookmark */ = 8B4E574B201BE1E100B5DC2A /* PBXTextBookmark */;
+ 8B793D7821F60308006E9731 /* PBXTextBookmark */ = 8B793D7821F60308006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -62,9 +62,9 @@
};
2407DEB6089929BA00EB68BF /* PDBuss.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 1742}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 1820}}";
sepNavSelRange = "{2794, 0}";
- sepNavVisRange = "{2616, 272}";
+ sepNavVisRange = "{2688, 198}";
sepNavWindowFrame = "{{337, 47}, {895, 831}}";
};
};
@@ -106,7 +106,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B4E5710201BE13900B5DC2A /* PBXTextBookmark */ = {
+ 8B4E574B201BE1E100B5DC2A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* PDBuss.cpp */;
name = "PDBuss.cpp: 85";
@@ -116,15 +116,15 @@
vrLen = 272;
vrLoc = 2616;
};
- 8B4E574B201BE1E100B5DC2A /* PBXTextBookmark */ = {
+ 8B793D7821F60308006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* PDBuss.cpp */;
- name = "PDBuss.cpp: 85";
+ name = "PDBuss.cpp: 83";
rLen = 0;
rLoc = 2794;
rType = 0;
- vrLen = 272;
- vrLoc = 2616;
+ vrLen = 198;
+ vrLoc = 2688;
};
8D01CCC60486CAD60068D4B7 /* PDBuss */ = {
activeExec = 0;
diff --git a/plugins/MacVST/PDBuss/PDBuss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PDBuss/PDBuss.xcodeproj/christopherjohnson.perspectivev3
index 419ed77..2dcefe9 100755
--- a/plugins/MacVST/PDBuss/PDBuss.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/PDBuss/PDBuss.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B4E574B201BE1E100B5DC2A</string>
+ <string>8B793D7821F60308006E9731</string>
<key>history</key>
<array>
- <string>8B4E5710201BE13900B5DC2A</string>
+ <string>8B4E574B201BE1E100B5DC2A</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>27 370 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>27 370 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -448,8 +450,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>27 370 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4E574C201BE1E100B5DC2A</string>
+ <string>8B793D7921F60308006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4E574D201BE1E100B5DC2A</string>
+ <string>8B793D7A21F60308006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4E574E201BE1E100B5DC2A</string>
+ <string>8B793D7B21F60308006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>538698209.87022996</real>
+ <real>569770760.80971301</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/PDBuss/PDBuss.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/PDBuss/PDBuss.xcodeproj</string>
</array>
<key>WindowString</key>
<string>27 370 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/PDBuss/source/PDBuss.cpp b/plugins/MacVST/PDBuss/source/PDBuss.cpp
index 323d8cf..8b31d8b 100755
--- a/plugins/MacVST/PDBuss/source/PDBuss.cpp
+++ b/plugins/MacVST/PDBuss/source/PDBuss.cpp
@@ -21,11 +21,8 @@ PDBuss::PDBuss(audioMasterCallback audioMaster) :
previousSampleL = 0.0;
previousSampleR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/PDBuss/source/PDBuss.h b/plugins/MacVST/PDBuss/source/PDBuss.h
index 5c7a504..3e6d9b8 100755
--- a/plugins/MacVST/PDBuss/source/PDBuss.h
+++ b/plugins/MacVST/PDBuss/source/PDBuss.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double gainchase;
double settingchase;
diff --git a/plugins/MacVST/PDBuss/source/PDBussProc.cpp b/plugins/MacVST/PDBuss/source/PDBussProc.cpp
index c099057..6da8fa0 100755
--- a/plugins/MacVST/PDBuss/source/PDBussProc.cpp
+++ b/plugins/MacVST/PDBuss/source/PDBussProc.cpp
@@ -13,9 +13,6 @@ void PDBuss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = A;
double intensity = B;
@@ -122,25 +119,14 @@ void PDBuss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
previousSampleR = sin(drySampleR);
//apply the sine while storing previous sample
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -158,9 +144,6 @@ void PDBuss::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = A;
double intensity = B;
@@ -267,25 +250,16 @@ void PDBuss::processDoubleReplacing(double **inputs, double **outputs, VstInt32
previousSampleR = sin(drySampleR);
//apply the sine while storing previous sample
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/PDChannel/PDChannel.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PDChannel/PDChannel.xcodeproj/christopherjohnson.pbxuser
index ed7f54d..80f815a 100755
--- a/plugins/MacVST/PDChannel/PDChannel.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/PDChannel/PDChannel.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,13 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 538696873;
- PBXWorkspaceStateSaveDate = 538696873;
+ PBXPerProjectTemplateStateSaveDate = 569770782;
+ PBXWorkspaceStateSaveDate = 569770782;
};
perUserProjectItems = {
8B4E574F201BE1E300B5DC2A /* PBXTextBookmark */ = 8B4E574F201BE1E300B5DC2A /* PBXTextBookmark */;
- 8B4E5750201BE1E300B5DC2A /* XCBuildMessageTextBookmark */ = 8B4E5750201BE1E300B5DC2A /* XCBuildMessageTextBookmark */;
8B4E5751201BE1E300B5DC2A /* PBXTextBookmark */ = 8B4E5751201BE1E300B5DC2A /* PBXTextBookmark */;
+ 8B793D9821F60328006E9731 /* PBXTextBookmark */ = 8B793D9821F60328006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -87,9 +87,9 @@
};
24D8286F09A914000093AEF8 /* PDChannelProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {691, 3705}}";
+ sepNavIntBoundsRect = "{{0, 0}, {614, 3341}}";
sepNavSelRange = "{3644, 0}";
- sepNavVisRange = "{3544, 467}";
+ sepNavVisRange = "{3529, 442}";
sepNavWindowFrame = "{{42, 47}, {895, 831}}";
};
};
@@ -117,15 +117,6 @@
vrLen = 244;
vrLoc = 227;
};
- 8B4E5750201BE1E300B5DC2A /* XCBuildMessageTextBookmark */ = {
- isa = PBXTextBookmark;
- comments = "'previousSampleR' was not declared in this scope";
- fRef = 24D8286F09A914000093AEF8 /* PDChannelProc.cpp */;
- fallbackIsa = XCBuildMessageTextBookmark;
- rLen = 1;
- rLoc = 105;
- rType = 1;
- };
8B4E5751201BE1E300B5DC2A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* PDChannelProc.cpp */;
@@ -136,6 +127,16 @@
vrLen = 467;
vrLoc = 3544;
};
+ 8B793D9821F60328006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* PDChannelProc.cpp */;
+ name = "PDChannelProc.cpp: 104";
+ rLen = 0;
+ rLoc = 3644;
+ rType = 0;
+ vrLen = 442;
+ vrLoc = 3529;
+ };
8D01CCC60486CAD60068D4B7 /* PDChannel */ = {
activeExec = 0;
};
diff --git a/plugins/MacVST/PDChannel/PDChannel.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PDChannel/PDChannel.xcodeproj/christopherjohnson.perspectivev3
index 524cd88..4ed8256 100755
--- a/plugins/MacVST/PDChannel/PDChannel.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/PDChannel/PDChannel.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -349,11 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B4E5751201BE1E300B5DC2A</string>
+ <string>8B793D9821F60328006E9731</string>
<key>history</key>
<array>
<string>8B4E574F201BE1E300B5DC2A</string>
- <string>8B4E5750201BE1E300B5DC2A</string>
+ <string>8B4E5751201BE1E300B5DC2A</string>
</array>
</dict>
<key>SplitCount</key>
@@ -367,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>24 89 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -392,7 +394,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>24 89 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -447,8 +451,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>24 89 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -476,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4E5752201BE1E300B5DC2A</string>
+ <string>8B793D9921F60328006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4E5753201BE1E300B5DC2A</string>
+ <string>8B793D9A21F60328006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4E5754201BE1E300B5DC2A</string>
+ <string>8B793D9B21F60328006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -633,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>538698211.51852405</real>
+ <real>569770792.98222196</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -650,7 +652,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/PDChannel/PDChannel.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/PDChannel/PDChannel.xcodeproj</string>
</array>
<key>WindowString</key>
<string>24 89 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/PDChannel/source/PDChannel.cpp b/plugins/MacVST/PDChannel/source/PDChannel.cpp
index d300fc8..aef639d 100755
--- a/plugins/MacVST/PDChannel/source/PDChannel.cpp
+++ b/plugins/MacVST/PDChannel/source/PDChannel.cpp
@@ -21,11 +21,8 @@ PDChannel::PDChannel(audioMasterCallback audioMaster) :
previousSampleL = 0.0;
previousSampleR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/PDChannel/source/PDChannel.h b/plugins/MacVST/PDChannel/source/PDChannel.h
index e92117c..ea233e2 100755
--- a/plugins/MacVST/PDChannel/source/PDChannel.h
+++ b/plugins/MacVST/PDChannel/source/PDChannel.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double gainchase;
double settingchase;
diff --git a/plugins/MacVST/PDChannel/source/PDChannelProc.cpp b/plugins/MacVST/PDChannel/source/PDChannelProc.cpp
index d8f79df..fb5932d 100755
--- a/plugins/MacVST/PDChannel/source/PDChannelProc.cpp
+++ b/plugins/MacVST/PDChannel/source/PDChannelProc.cpp
@@ -13,9 +13,6 @@ void PDChannel::processReplacing(float **inputs, float **outputs, VstInt32 sampl
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = A;
double intensity = B;
@@ -115,25 +112,14 @@ void PDChannel::processReplacing(float **inputs, float **outputs, VstInt32 sampl
previousSampleR = sin(drySampleR);
//apply the sine while storing previous sample
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -151,9 +137,6 @@ void PDChannel::processDoubleReplacing(double **inputs, double **outputs, VstInt
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputgain = A;
double intensity = B;
@@ -253,25 +236,16 @@ void PDChannel::processDoubleReplacing(double **inputs, double **outputs, VstInt
previousSampleR = sin(drySampleR);
//apply the sine while storing previous sample
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/PhaseNudge/PhaseNudge.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PhaseNudge/PhaseNudge.xcodeproj/christopherjohnson.pbxuser
index 912d676..5bc2f16 100755
--- a/plugins/MacVST/PhaseNudge/PhaseNudge.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/PhaseNudge/PhaseNudge.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461482;
- PBXWorkspaceStateSaveDate = 528461482;
+ PBXPerProjectTemplateStateSaveDate = 569770816;
+ PBXWorkspaceStateSaveDate = 569770816;
};
perUserProjectItems = {
- 8B9D6EC41F7EF3B7007AB60F /* PBXTextBookmark */ = 8B9D6EC41F7EF3B7007AB60F /* PBXTextBookmark */;
+ 8B793DB821F60356006E9731 /* PBXTextBookmark */ = 8B793DB821F60356006E9731 /* PBXTextBookmark */;
8B9D7CAA1F7FAEC4007AB60F /* PBXTextBookmark */ = 8B9D7CAA1F7FAEC4007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -62,7 +62,7 @@
};
2407DEB6089929BA00EB68BF /* PhaseNudge.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 1768}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 1703}}";
sepNavSelRange = "{565, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
@@ -106,7 +106,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6EC41F7EF3B7007AB60F /* PBXTextBookmark */ = {
+ 8B793DB821F60356006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* PhaseNudge.cpp */;
name = "PhaseNudge.cpp: 18";
diff --git a/plugins/MacVST/PhaseNudge/PhaseNudge.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PhaseNudge/PhaseNudge.xcodeproj/christopherjohnson.perspectivev3
index 987bfeb..0540e81 100755
--- a/plugins/MacVST/PhaseNudge/PhaseNudge.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/PhaseNudge/PhaseNudge.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7CAA1F7FAEC4007AB60F</string>
+ <string>8B793DB821F60356006E9731</string>
<key>history</key>
<array>
- <string>8B9D6EC41F7EF3B7007AB60F</string>
+ <string>8B9D7CAA1F7FAEC4007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7CAB1F7FAEC4007AB60F</string>
+ <string>8B793DB921F60356006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7CAC1F7FAEC4007AB60F</string>
+ <string>8B793DBA21F60356006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7CAD1F7FAEC4007AB60F</string>
+ <string>8B793DBB21F60356006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461508.86837101</real>
+ <real>569770838.654899</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7CAE1F7FAEC4007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/PhaseNudge/PhaseNudge.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/PhaseNudge/source/PhaseNudge.cpp b/plugins/MacVST/PhaseNudge/source/PhaseNudge.cpp
index 8a77175..e9e5c8d 100755
--- a/plugins/MacVST/PhaseNudge/source/PhaseNudge.cpp
+++ b/plugins/MacVST/PhaseNudge/source/PhaseNudge.cpp
@@ -16,11 +16,8 @@ PhaseNudge::PhaseNudge(audioMasterCallback audioMaster) :
B = 1.0;
for(int count = 0; count < 1502; count++) {dL[count] = 0.0; dR[count] = 0.0;}
one = 1; maxdelay = 9001;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/PhaseNudge/source/PhaseNudge.h b/plugins/MacVST/PhaseNudge/source/PhaseNudge.h
index cba0ac8..2926ccb 100755
--- a/plugins/MacVST/PhaseNudge/source/PhaseNudge.h
+++ b/plugins/MacVST/PhaseNudge/source/PhaseNudge.h
@@ -57,11 +57,8 @@ private:
double dR[1503];
int one, maxdelay;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/PhaseNudge/source/PhaseNudgeProc.cpp b/plugins/MacVST/PhaseNudge/source/PhaseNudgeProc.cpp
index 494c841..150ecd5 100755
--- a/plugins/MacVST/PhaseNudge/source/PhaseNudgeProc.cpp
+++ b/plugins/MacVST/PhaseNudge/source/PhaseNudgeProc.cpp
@@ -14,9 +14,6 @@ void PhaseNudge::processReplacing(float **inputs, float **outputs, VstInt32 samp
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
int allpasstemp;
double outallpass = 0.618033988749894848204586; //golden ratio!
@@ -136,25 +133,14 @@ void PhaseNudge::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleR = (drySampleR * dry)+(inputSampleR * wet);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -173,9 +159,6 @@ void PhaseNudge::processDoubleReplacing(double **inputs, double **outputs, VstIn
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
int allpasstemp;
double outallpass = 0.618033988749894848204586; //golden ratio!
@@ -294,25 +277,16 @@ void PhaseNudge::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleR = (drySampleR * dry)+(inputSampleR * wet);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Point/Point.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Point/Point.xcodeproj/christopherjohnson.pbxuser
index 1e91a67..5dc4070 100755
--- a/plugins/MacVST/Point/Point.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Point/Point.xcodeproj/christopherjohnson.pbxuser
@@ -51,11 +51,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461517;
- PBXWorkspaceStateSaveDate = 528461517;
+ PBXPerProjectTemplateStateSaveDate = 569770893;
+ PBXWorkspaceStateSaveDate = 569770893;
};
perUserProjectItems = {
- 8B9D6EEE1F7EF3E2007AB60F /* PBXTextBookmark */ = 8B9D6EEE1F7EF3E2007AB60F /* PBXTextBookmark */;
+ 8B793DE421F603B1006E9731 /* PBXTextBookmark */ = 8B793DE421F603B1006E9731 /* PBXTextBookmark */;
8B9D7CCC1F7FAEE4007AB60F /* PBXTextBookmark */ = 8B9D7CCC1F7FAEE4007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -64,17 +64,17 @@
};
2407DEB6089929BA00EB68BF /* Point.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1924}}";
- sepNavSelRange = "{4284, 0}";
- sepNavVisRange = "{3036, 2173}";
- sepNavWindowFrame = "{{63, 36}, {895, 831}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1963}}";
+ sepNavSelRange = "{618, 0}";
+ sepNavVisRange = "{0, 1832}";
+ sepNavWindowFrame = "{{63, 39}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Point.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 949}}";
- sepNavSelRange = "{2638, 0}";
- sepNavVisRange = "{268, 2297}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 988}}";
+ sepNavSelRange = "{2450, 0}";
+ sepNavVisRange = "{389, 2251}";
sepNavWindowFrame = "{{8, 41}, {895, 831}}";
};
};
@@ -88,7 +88,7 @@
};
24D8286F09A914000093AEF8 /* PointProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 4030}}";
+ sepNavIntBoundsRect = "{{0, 0}, {670, 3783}}";
sepNavSelRange = "{5732, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{458, 47}, {895, 831}}";
@@ -108,10 +108,10 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6EEE1F7EF3E2007AB60F /* PBXTextBookmark */ = {
+ 8B793DE421F603B1006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* PointProc.cpp */;
- name = "PointProc.cpp: 187";
+ name = "PointProc.cpp: 181";
rLen = 0;
rLoc = 5732;
rType = 0;
diff --git a/plugins/MacVST/Point/Point.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Point/Point.xcodeproj/christopherjohnson.perspectivev3
index f8109c7..384a575 100755
--- a/plugins/MacVST/Point/Point.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Point/Point.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7CCC1F7FAEE4007AB60F</string>
+ <string>8B793DE421F603B1006E9731</string>
<key>history</key>
<array>
- <string>8B9D6EEE1F7EF3E2007AB60F</string>
+ <string>8B9D7CCC1F7FAEE4007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>304 344 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
- <key>RubberWindowFrame</key>
- <string>304 344 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 414}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -449,7 +447,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 363}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>304 344 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7CCD1F7FAEE4007AB60F</string>
+ <string>8B793DE521F603B1006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7CCE1F7FAEE4007AB60F</string>
+ <string>8B793DE621F603B1006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7CCF1F7FAEE4007AB60F</string>
+ <string>8B793DE721F603B1006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -654,7 +654,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461540.135059</real>
+ <real>569770929.49119902</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -671,7 +671,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7CD01F7FAEE4007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Point/Point.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Point/source/Point.cpp b/plugins/MacVST/Point/source/Point.cpp
index 22885b5..f795470 100755
--- a/plugins/MacVST/Point/source/Point.cpp
+++ b/plugins/MacVST/Point/source/Point.cpp
@@ -24,10 +24,8 @@ Point::Point(audioMasterCallback audioMaster) :
nibBR = 0.0;
nobBR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
fpFlip = true;
//this is reset: values being initialized only once. Startup values, whatever they are.
diff --git a/plugins/MacVST/Point/source/Point.h b/plugins/MacVST/Point/source/Point.h
index 12c8001..ff898cb 100755
--- a/plugins/MacVST/Point/source/Point.h
+++ b/plugins/MacVST/Point/source/Point.h
@@ -54,10 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
+ long double fpNShapeL;
+ long double fpNShapeR;
bool fpFlip;
//default stuff
double nibAL;
diff --git a/plugins/MacVST/Point/source/PointProc.cpp b/plugins/MacVST/Point/source/PointProc.cpp
index a00263d..a3bbe3c 100755
--- a/plugins/MacVST/Point/source/PointProc.cpp
+++ b/plugins/MacVST/Point/source/PointProc.cpp
@@ -27,9 +27,6 @@ void Point::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
double nibnobFactor = 0.0; //start with the fallthrough value, why not
double absolute;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -128,26 +125,16 @@ void Point::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
}
}
inputSampleR *= nibnobFactor;
-
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -179,9 +166,6 @@ void Point::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
double nibnobFactor = 0.0; //start with the fallthrough value, why not
double absolute;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -280,26 +264,18 @@ void Point::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
}
}
inputSampleR *= nibnobFactor;
-
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Pop/Pop.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Pop/Pop.xcodeproj/christopherjohnson.pbxuser
index 899cc09..f19a7b1 100755
--- a/plugins/MacVST/Pop/Pop.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Pop/Pop.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* Pop */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 557537791;
- PBXWorkspaceStateSaveDate = 557537791;
+ PBXPerProjectTemplateStateSaveDate = 569770952;
+ PBXWorkspaceStateSaveDate = 569770952;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* Pop */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/Pop/Pop.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Pop/Pop.xcodeproj/christopherjohnson.perspectivev3
index 85b0e48..58d4d71 100755
--- a/plugins/MacVST/Pop/Pop.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Pop/Pop.xcodeproj/christopherjohnson.perspectivev3
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B6DBAC4213B60BA00E44739</string>
+ <string>8B793DFA21F603D1006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B6DBAC5213B60BA00E44739</string>
+ <string>8B793DFB21F603D1006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B6DBAC6213B60BA00E44739</string>
+ <string>8B793DFC21F603D1006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>557539514.49375904</real>
+ <real>569770961.06224799</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,8 +643,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B6DBAC7213B60BA00E44739</string>
- <string>/Users/christopherjohnson/Desktop/Pop/Pop.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/Pop/Pop.xcodeproj</string>
</array>
<key>WindowString</key>
<string>181 239 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/Pop/Pop.xcodeproj/project.pbxproj b/plugins/MacVST/Pop/Pop.xcodeproj/project.pbxproj
index a8ba4b6..1a2bcdf 100755
--- a/plugins/MacVST/Pop/Pop.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/Pop/Pop.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* Pop */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Pop" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* Pop */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Pop/source/PopProc.cpp b/plugins/MacVST/Pop/source/PopProc.cpp
index ae7dd4d..baa9420 100755
--- a/plugins/MacVST/Pop/source/PopProc.cpp
+++ b/plugins/MacVST/Pop/source/PopProc.cpp
@@ -268,18 +268,14 @@ void Pop::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrame
inputSampleR = (drySampleR*(1.0-wet))+(inputSampleR*wet);
}
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -289,12 +285,6 @@ void Pop::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrame
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void Pop::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -558,18 +548,16 @@ void Pop::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sam
inputSampleR = (drySampleR*(1.0-wet))+(inputSampleR*wet);
}
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -579,10 +567,4 @@ void Pop::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sam
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/PowerSag/PowerSag.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PowerSag/PowerSag.xcodeproj/christopherjohnson.pbxuser
index 7297e69..f09d1b9 100755
--- a/plugins/MacVST/PowerSag/PowerSag.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/PowerSag/PowerSag.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461548;
- PBXWorkspaceStateSaveDate = 528461548;
+ PBXPerProjectTemplateStateSaveDate = 569771002;
+ PBXWorkspaceStateSaveDate = 569771002;
};
perUserProjectItems = {
- 8B9D6F151F7EF53E007AB60F /* PBXTextBookmark */ = 8B9D6F151F7EF53E007AB60F /* PBXTextBookmark */;
+ 8B793E1921F60406006E9731 /* PBXTextBookmark */ = 8B793E1921F60406006E9731 /* PBXTextBookmark */;
8B9D7CF61F7FAF1B007AB60F /* PBXTextBookmark */ = 8B9D7CF61F7FAF1B007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -94,7 +94,7 @@
};
24D8286F09A914000093AEF8 /* PowerSagProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {691, 3679}}";
+ sepNavIntBoundsRect = "{{0, 0}, {677, 3497}}";
sepNavSelRange = "{6117, 1892}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{373, 47}, {895, 831}}";
@@ -114,10 +114,10 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6F151F7EF53E007AB60F /* PBXTextBookmark */ = {
+ 8B793E1921F60406006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* PowerSagProc.cpp */;
- name = "PowerSagProc.cpp: 182";
+ name = "PowerSagProc.cpp: 171";
rLen = 1892;
rLoc = 6117;
rType = 0;
diff --git a/plugins/MacVST/PowerSag/PowerSag.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PowerSag/PowerSag.xcodeproj/christopherjohnson.perspectivev3
index ae6f413..bfea37c 100755
--- a/plugins/MacVST/PowerSag/PowerSag.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/PowerSag/PowerSag.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7CF61F7FAF1B007AB60F</string>
+ <string>8B793E1921F60406006E9731</string>
<key>history</key>
<array>
- <string>8B9D6F151F7EF53E007AB60F</string>
+ <string>8B9D7CF61F7FAF1B007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>260 312 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
<string>260 312 810 487 0 0 1440 878 </string>
</dict>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7CF71F7FAF1B007AB60F</string>
+ <string>8B793E1A21F60406006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7CF81F7FAF1B007AB60F</string>
+ <string>8B793E1B21F60406006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7CF91F7FAF1B007AB60F</string>
+ <string>8B793E1C21F60406006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461595.073053</real>
+ <real>569771014.65125096</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7CFA1F7FAF1B007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/PowerSag/PowerSag.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/PowerSag/source/PowerSag.cpp b/plugins/MacVST/PowerSag/source/PowerSag.cpp
index 0218186..d1d0745 100755
--- a/plugins/MacVST/PowerSag/source/PowerSag.cpp
+++ b/plugins/MacVST/PowerSag/source/PowerSag.cpp
@@ -18,11 +18,8 @@ PowerSag::PowerSag(audioMasterCallback audioMaster) :
gcount = 0;
A = 0.0;
B = 0.3;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/PowerSag/source/PowerSag.h b/plugins/MacVST/PowerSag/source/PowerSag.h
index 930f05b..38839b6 100755
--- a/plugins/MacVST/PowerSag/source/PowerSag.h
+++ b/plugins/MacVST/PowerSag/source/PowerSag.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double dL[9000];
double dR[9000];
diff --git a/plugins/MacVST/PowerSag/source/PowerSagProc.cpp b/plugins/MacVST/PowerSag/source/PowerSagProc.cpp
index d1afa31..de43be6 100755
--- a/plugins/MacVST/PowerSag/source/PowerSagProc.cpp
+++ b/plugins/MacVST/PowerSag/source/PowerSagProc.cpp
@@ -22,9 +22,6 @@ void PowerSag::processReplacing(float **inputs, float **outputs, VstInt32 sample
double out;
double bridgerectifier;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -123,25 +120,14 @@ void PowerSag::processReplacing(float **inputs, float **outputs, VstInt32 sample
gcount--;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -168,9 +154,6 @@ void PowerSag::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double out;
double bridgerectifier;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -269,25 +252,16 @@ void PowerSag::processDoubleReplacing(double **inputs, double **outputs, VstInt3
gcount--;
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Pressure4/Pressure4.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Pressure4/Pressure4.xcodeproj/christopherjohnson.pbxuser
index 3c1525b..37f6135 100755
--- a/plugins/MacVST/Pressure4/Pressure4.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Pressure4/Pressure4.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,13 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461605;
- PBXWorkspaceStateSaveDate = 528461605;
+ PBXPerProjectTemplateStateSaveDate = 569771037;
+ PBXWorkspaceStateSaveDate = 569771037;
};
perUserProjectItems = {
8B2E04191D8381D1001B9E01 /* PBXTextBookmark */ = 8B2E04191D8381D1001B9E01 /* PBXTextBookmark */;
- 8B9D6F2A1F7EF568007AB60F /* PBXTextBookmark */ = 8B9D6F2A1F7EF568007AB60F /* PBXTextBookmark */;
- 8B9D7D161F7FAF5A007AB60F /* PBXTextBookmark */ = 8B9D7D161F7FAF5A007AB60F /* PBXTextBookmark */;
+ 8B793E3721F60423006E9731 /* PBXTextBookmark */ = 8B793E3721F60423006E9731 /* PBXTextBookmark */;
+ 8B793E3C21F60454006E9731 /* PBXTextBookmark */ = 8B793E3C21F60454006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -63,15 +63,15 @@
};
2407DEB6089929BA00EB68BF /* Pressure4.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 2184}}";
- sepNavSelRange = "{4340, 0}";
- sepNavVisRange = "{0, 1911}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 2158}}";
+ sepNavSelRange = "{527, 0}";
+ sepNavVisRange = "{0, 1930}";
sepNavWindowFrame = "{{535, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Pressure4.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 1170}}";
+ sepNavIntBoundsRect = "{{0, 0}, {600, 1105}}";
sepNavSelRange = "{453, 0}";
sepNavVisRange = "{419, 41}";
sepNavWindowFrame = "{{530, 47}, {895, 831}}";
@@ -112,22 +112,22 @@
fRef = 2407DEB6089929BA00EB68BF /* Pressure4.cpp */;
name = "Pressure4.cpp: 52";
rLen = 0;
- rLoc = 1865;
+ rLoc = 1825;
rType = 0;
vrLen = 312;
vrLoc = 44;
};
- 8B9D6F2A1F7EF568007AB60F /* PBXTextBookmark */ = {
+ 8B793E3721F60423006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* Pressure4.h */;
name = "Pressure4.h: 23";
rLen = 0;
rLoc = 453;
rType = 0;
- vrLen = 69;
- vrLoc = 391;
+ vrLen = 41;
+ vrLoc = 419;
};
- 8B9D7D161F7FAF5A007AB60F /* PBXTextBookmark */ = {
+ 8B793E3C21F60454006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* Pressure4.h */;
name = "Pressure4.h: 23";
diff --git a/plugins/MacVST/Pressure4/Pressure4.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Pressure4/Pressure4.xcodeproj/christopherjohnson.perspectivev3
index 3f05d07..a83121a 100755
--- a/plugins/MacVST/Pressure4/Pressure4.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Pressure4/Pressure4.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -351,11 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7D161F7FAF5A007AB60F</string>
+ <string>8B793E3C21F60454006E9731</string>
<key>history</key>
<array>
<string>8B2E04191D8381D1001B9E01</string>
- <string>8B9D6F2A1F7EF568007AB60F</string>
+ <string>8B793E3721F60423006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 69}}</string>
+ <string>{{0, 0}, {603, 51}}</string>
<key>RubberWindowFrame</key>
<string>630 371 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>69pt</string>
+ <string>51pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>372pt</string>
+ <string>390pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,9 +394,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 345}}</string>
- <key>RubberWindowFrame</key>
- <string>630 371 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 363}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -450,7 +448,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 363}}</string>
+ <key>RubberWindowFrame</key>
+ <string>630 371 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -478,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7D171F7FAF5A007AB60F</string>
+ <string>8B793E3D21F60454006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7D181F7FAF5A007AB60F</string>
+ <string>8B793E3E21F60454006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7D191F7FAF5A007AB60F</string>
+ <string>8B793E3F21F60454006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461658.22323</real>
+ <real>569771092.74144006</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,7 +652,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7D1A1F7FAF5A007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Pressure4/Pressure4.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Pressure4/source/Pressure4.cpp b/plugins/MacVST/Pressure4/source/Pressure4.cpp
index 8ae2adc..10ed5fa 100755
--- a/plugins/MacVST/Pressure4/source/Pressure4.cpp
+++ b/plugins/MacVST/Pressure4/source/Pressure4.cpp
@@ -16,10 +16,8 @@ Pressure4::Pressure4(audioMasterCallback audioMaster) :
B = 0.2;
C = 1.0;
D = 1.0;
- fpNShapeAL = 0.0;
- fpNShapeBL = 0.0;
- fpNShapeAR = 0.0;
- fpNShapeBR = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
muSpeedA = 10000;
muSpeedB = 10000;
muCoefficientA = 1;
diff --git a/plugins/MacVST/Pressure4/source/Pressure4.h b/plugins/MacVST/Pressure4/source/Pressure4.h
index 29d20eb..6cf3448 100755
--- a/plugins/MacVST/Pressure4/source/Pressure4.h
+++ b/plugins/MacVST/Pressure4/source/Pressure4.h
@@ -62,10 +62,8 @@ private:
double muSpeedB;
double muCoefficientA;
double muCoefficientB;
- long double fpNShapeAL;
- long double fpNShapeBL;
- long double fpNShapeAR;
- long double fpNShapeBR;
+ long double fpNShapeL;
+ long double fpNShapeR;
bool flip;
float A;
diff --git a/plugins/MacVST/Pressure4/source/Pressure4Proc.cpp b/plugins/MacVST/Pressure4/source/Pressure4Proc.cpp
index 02b8a78..7e285df 100755
--- a/plugins/MacVST/Pressure4/source/Pressure4Proc.cpp
+++ b/plugins/MacVST/Pressure4/source/Pressure4Proc.cpp
@@ -43,9 +43,6 @@ void Pressure4::processReplacing(float **inputs, float **outputs, VstInt32 sampl
unmewiness = 1.0-mewiness;
}
// µ µ µ µ µ µ µ µ µ µ µ µ is the kitten song o/~
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -195,27 +192,14 @@ void Pressure4::processReplacing(float **inputs, float **outputs, VstInt32 sampl
else {inputSampleR = -bridgerectifier;}
//second stage of overdrive to prevent overs and allow bloody loud extremeness
- //noise shaping to 32-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
-
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
-
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*outputL = inputSampleL;
*outputR = inputSampleR;
@@ -263,9 +247,6 @@ void Pressure4::processDoubleReplacing(double **inputs, double **outputs, VstInt
unmewiness = 1.0-mewiness;
}
// µ µ µ µ µ µ µ µ µ µ µ µ is the kitten song o/~
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -416,27 +397,16 @@ void Pressure4::processDoubleReplacing(double **inputs, double **outputs, VstInt
else {inputSampleR = -bridgerectifier;}
//second stage of overdrive to prevent overs and allow bloody loud extremeness
- //noise shaping to 32-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
-
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
-
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 32 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*outputL = inputSampleL;
*outputR = inputSampleR;
diff --git a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/christopherjohnson.pbxuser
index a4b799a..05bbaee 100644..100755
--- a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 535163595;
- PBXWorkspaceStateSaveDate = 535163595;
+ PBXPerProjectTemplateStateSaveDate = 569771116;
+ PBXWorkspaceStateSaveDate = 569771116;
};
perUserProjectItems = {
- 8BBE455F1FE5F4550022E6F7 /* XCBuildMessageTextBookmark */ = 8BBE455F1FE5F4550022E6F7 /* XCBuildMessageTextBookmark */;
+ 8B793E5C21F60475006E9731 /* PBXTextBookmark */ = 8B793E5C21F60475006E9731 /* PBXTextBookmark */;
8BBE45601FE5F4550022E6F7 /* PBXTextBookmark */ = 8BBE45601FE5F4550022E6F7 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -62,9 +62,9 @@
};
2407DEB6089929BA00EB68BF /* PurestConsoleBuss.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {733, 1404}}";
+ sepNavIntBoundsRect = "{{0, 0}, {663, 1391}}";
sepNavSelRange = "{2244, 0}";
- sepNavVisRange = "{2157, 260}";
+ sepNavVisRange = "{2188, 173}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
@@ -106,14 +106,15 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BBE455F1FE5F4550022E6F7 /* XCBuildMessageTextBookmark */ = {
+ 8B793E5C21F60475006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "Unused variable 'chunkData'";
fRef = 2407DEB6089929BA00EB68BF /* PurestConsoleBuss.cpp */;
- fallbackIsa = XCBuildMessageTextBookmark;
- rLen = 1;
- rLoc = 53;
- rType = 1;
+ name = "PurestConsoleBuss.cpp: 54";
+ rLen = 0;
+ rLoc = 2244;
+ rType = 0;
+ vrLen = 173;
+ vrLoc = 2188;
};
8BBE45601FE5F4550022E6F7 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/christopherjohnson.perspectivev3
index 735d7a1..a64a099 100644..100755
--- a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -349,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BBE45601FE5F4550022E6F7</string>
+ <string>8B793E5C21F60475006E9731</string>
<key>history</key>
<array>
- <string>8BBE455F1FE5F4550022E6F7</string>
+ <string>8BBE45601FE5F4550022E6F7</string>
</array>
</dict>
<key>SplitCount</key>
@@ -366,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>10 385 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -391,7 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>10 385 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -446,8 +450,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>10 385 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -475,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBE45611FE5F4550022E6F7</string>
+ <string>8B793E5D21F60475006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBE45621FE5F4550022E6F7</string>
+ <string>8B793E5E21F60475006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBE45631FE5F4550022E6F7</string>
+ <string>8B793E5F21F60475006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -632,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>535163989.59433597</real>
+ <real>569771125.16991305</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -649,8 +651,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BBE45641FE5F4550022E6F7</string>
- <string>/Users/christopherjohnson/Desktop/PurestConsoleBuss/PurestConsoleBuss.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj</string>
</array>
<key>WindowString</key>
<string>10 385 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index a80c038..a80c038 100644..100755
--- a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
index 5c38f94..5c38f94 100644..100755
--- a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
index 314de0f..314de0f 100644..100755
--- a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/spiadmin.mode1v3
index c572326..c572326 100644..100755
--- a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/spiadmin.mode1v3
+++ b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/spiadmin.mode1v3
diff --git a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/spiadmin.pbxuser
index df94780..df94780 100644..100755
--- a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/spiadmin.pbxuser
+++ b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/spiadmin.pbxuser
diff --git a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
index 8ee693f..8ee693f 100644..100755
--- a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
+++ b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
diff --git a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
index 5bccbcb..5bccbcb 100644..100755
--- a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
index a7bdd62..a7bdd62 100644..100755
--- a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
index 0df2de4..0df2de4 100644..100755
--- a/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
+++ b/plugins/MacVST/PurestConsoleBuss/PurestConsoleBuss.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
diff --git a/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBuss.cpp b/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBuss.cpp
index ed0b223..2d8e619 100755
--- a/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBuss.cpp
+++ b/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBuss.cpp
@@ -12,11 +12,8 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new P
PurestConsoleBuss::PurestConsoleBuss(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBuss.h b/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBuss.h
index 0d237ec..51495fc 100755
--- a/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBuss.h
+++ b/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBuss.h
@@ -51,11 +51,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
};
diff --git a/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBussProc.cpp b/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBussProc.cpp
index c06258a..6211eeb 100755
--- a/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBussProc.cpp
+++ b/plugins/MacVST/PurestConsoleBuss/source/PurestConsoleBussProc.cpp
@@ -14,9 +14,6 @@ void PurestConsoleBuss::processReplacing(float **inputs, float **outputs, VstInt
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -74,25 +71,14 @@ void PurestConsoleBuss::processReplacing(float **inputs, float **outputs, VstInt
inputSampleR = asin(inputSampleR);
//amplitude aspect
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -111,9 +97,6 @@ void PurestConsoleBuss::processDoubleReplacing(double **inputs, double **outputs
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -171,25 +154,16 @@ void PurestConsoleBuss::processDoubleReplacing(double **inputs, double **outputs
inputSampleR = asin(inputSampleR);
//amplitude aspect
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/christopherjohnson.pbxuser
index cd6b4c4..9f0edd0 100644..100755
--- a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/christopherjohnson.pbxuser
@@ -49,14 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 535163135;
- PBXWorkspaceStateSaveDate = 535163135;
+ PBXPerProjectTemplateStateSaveDate = 569771151;
+ PBXWorkspaceStateSaveDate = 569771151;
};
perUserProjectItems = {
- 8BBE45161FE5F1980022E6F7 /* PBXBookmark */ = 8BBE45161FE5F1980022E6F7 /* PBXBookmark */;
- 8BBE45251FE5F2760022E6F7 /* XCBuildMessageTextBookmark */ = 8BBE45251FE5F2760022E6F7 /* XCBuildMessageTextBookmark */;
- 8BBE45261FE5F2760022E6F7 /* PBXTextBookmark */ = 8BBE45261FE5F2760022E6F7 /* PBXTextBookmark */;
- 8BBE45291FE5F2760022E6F7 /* PBXTextBookmark */ = 8BBE45291FE5F2760022E6F7 /* PBXTextBookmark */;
+ 8B793E7C21F604AB006E9731 /* XCBuildMessageTextBookmark */ = 8B793E7C21F604AB006E9731 /* XCBuildMessageTextBookmark */;
+ 8B793E7D21F604AB006E9731 /* PBXTextBookmark */ = 8B793E7D21F604AB006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -64,9 +62,9 @@
};
2407DEB6089929BA00EB68BF /* PurestConsoleChannel.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {663, 1508}}";
- sepNavSelRange = "{2286, 0}";
- sepNavVisRange = "{2321, 276}";
+ sepNavIntBoundsRect = "{{0, 0}, {663, 1417}}";
+ sepNavSelRange = "{2230, 0}";
+ sepNavVisRange = "{2139, 260}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
@@ -88,9 +86,9 @@
};
24D8286F09A914000093AEF8 /* PurestConsoleChannelProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 2522}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 2132}}";
sepNavSelRange = "{5889, 0}";
- sepNavVisRange = "{94, 2079}";
+ sepNavVisRange = "{899, 2244}";
sepNavWindowFrame = "{{8, 47}, {895, 831}}";
};
};
@@ -108,38 +106,24 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BBE45161FE5F1980022E6F7 /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 24D8286F09A914000093AEF8 /* PurestConsoleChannelProc.cpp */;
- };
- 8BBE45251FE5F2760022E6F7 /* XCBuildMessageTextBookmark */ = {
+ 8B793E7C21F604AB006E9731 /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
comments = "Unused variable 'chunkData'";
fRef = 2407DEB6089929BA00EB68BF /* PurestConsoleChannel.cpp */;
fallbackIsa = XCBuildMessageTextBookmark;
rLen = 1;
- rLoc = 53;
+ rLoc = 50;
rType = 1;
};
- 8BBE45261FE5F2760022E6F7 /* PBXTextBookmark */ = {
+ 8B793E7D21F604AB006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* PurestConsoleChannel.cpp */;
- name = "PurestConsoleChannel.cpp: 54";
- rLen = 0;
- rLoc = 2286;
- rType = 0;
- vrLen = 276;
- vrLoc = 2321;
- };
- 8BBE45291FE5F2760022E6F7 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* PurestConsoleChannelProc.cpp */;
- name = "PurestConsoleChannelProc.cpp: 158";
+ name = "PurestConsoleChannel.cpp: 51";
rLen = 0;
- rLoc = 5889;
+ rLoc = 2230;
rType = 0;
- vrLen = 2079;
- vrLoc = 94;
+ vrLen = 260;
+ vrLoc = 2139;
};
8D01CCC60486CAD60068D4B7 /* PurestConsoleChannel */ = {
activeExec = 0;
diff --git a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/christopherjohnson.perspectivev3
index 91b4416..948cc4a 100644..100755
--- a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/christopherjohnson.perspectivev3
@@ -222,48 +222,7 @@
</dict>
</array>
<key>OpenEditors</key>
- <array>
- <dict>
- <key>Content</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8BBE45271FE5F2760022E6F7</string>
- <key>PBXProjectModuleLabel</key>
- <string>PurestConsoleChannelProc.cpp</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8BBE45281FE5F2760022E6F7</string>
- <key>PBXProjectModuleLabel</key>
- <string>PurestConsoleChannelProc.cpp</string>
- <key>_historyCapacity</key>
- <integer>0</integer>
- <key>bookmark</key>
- <string>8BBE45291FE5F2760022E6F7</string>
- <key>history</key>
- <array>
- <string>8BBE45161FE5F1980022E6F7</string>
- </array>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
- <key>StatusBarVisibility</key>
- <true/>
- </dict>
- <key>Geometry</key>
- <dict>
- <key>Frame</key>
- <string>{{0, 20}, {895, 734}}</string>
- <key>PBXModuleWindowStatusBarHidden2</key>
- <false/>
- <key>RubberWindowFrame</key>
- <string>8 103 895 775 0 0 1440 878 </string>
- </dict>
- </dict>
- </array>
+ <array/>
<key>PerspectiveWidths</key>
<array>
<integer>810</integer>
@@ -362,7 +321,7 @@
<real>236</real>
</array>
<key>RubberWindowFrame</key>
- <string>13 375 810 487 0 0 1440 878 </string>
+ <string>406 301 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -390,10 +349,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BBE45261FE5F2760022E6F7</string>
+ <string>8B793E7D21F604AB006E9731</string>
<key>history</key>
<array>
- <string>8BBE45251FE5F2760022E6F7</string>
+ <string>8B793E7C21F604AB006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -407,18 +366,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {552, 132}}</string>
+ <string>{{0, 0}, {552, 117}}</string>
<key>RubberWindowFrame</key>
- <string>13 375 810 487 0 0 1440 878 </string>
+ <string>406 301 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -432,7 +391,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {552, 414}}</string>
+ <string>{{10, 27}, {552, 297}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -486,9 +445,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {552, 282}}</string>
+ <string>{{10, 27}, {552, 297}}</string>
<key>RubberWindowFrame</key>
- <string>13 375 810 487 0 0 1440 878 </string>
+ <string>406 301 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -516,11 +475,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBE45051FE5F1020022E6F7</string>
+ <string>8B793E7E21F604AB006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBE45061FE5F1020022E6F7</string>
+ <string>8B793E7F21F604AB006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBE45071FE5F1020022E6F7</string>
+ <string>8B793E8021F604AB006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -673,7 +632,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>535163510.630979</real>
+ <real>569771179.00788903</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -690,12 +649,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BBE452A1FE5F2760022E6F7</string>
<string>8BBE45271FE5F2760022E6F7</string>
- <string>/Users/christopherjohnson/Desktop/PurestConsoleChannel/PurestConsoleChannel.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>13 375 810 487 0 0 1440 878 </string>
+ <string>406 301 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index a80c038..a80c038 100644..100755
--- a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
index 5c38f94..5c38f94 100644..100755
--- a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
index 314de0f..314de0f 100644..100755
--- a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/spiadmin.mode1v3
index c572326..c572326 100644..100755
--- a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/spiadmin.mode1v3
+++ b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/spiadmin.mode1v3
diff --git a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/spiadmin.pbxuser
index df94780..df94780 100644..100755
--- a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/spiadmin.pbxuser
+++ b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/spiadmin.pbxuser
diff --git a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
index 8ee693f..8ee693f 100644..100755
--- a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
+++ b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
diff --git a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
index 5bccbcb..5bccbcb 100644..100755
--- a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
index a7bdd62..a7bdd62 100644..100755
--- a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
index 0df2de4..0df2de4 100644..100755
--- a/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
+++ b/plugins/MacVST/PurestConsoleChannel/PurestConsoleChannel.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
diff --git a/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannel.cpp b/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannel.cpp
index b9f3e04..35649a6 100755
--- a/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannel.cpp
+++ b/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannel.cpp
@@ -12,11 +12,8 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new P
PurestConsoleChannel::PurestConsoleChannel(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannel.h b/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannel.h
index c0a1648..51e728f 100755
--- a/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannel.h
+++ b/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannel.h
@@ -51,11 +51,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
};
diff --git a/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannelProc.cpp b/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannelProc.cpp
index 630cba7..2fc513a 100755
--- a/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannelProc.cpp
+++ b/plugins/MacVST/PurestConsoleChannel/source/PurestConsoleChannelProc.cpp
@@ -14,9 +14,6 @@ void PurestConsoleChannel::processReplacing(float **inputs, float **outputs, Vst
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -68,25 +65,14 @@ void PurestConsoleChannel::processReplacing(float **inputs, float **outputs, Vst
inputSampleR = sin(inputSampleR);
//amplitude aspect
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -105,9 +91,6 @@ void PurestConsoleChannel::processDoubleReplacing(double **inputs, double **outp
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -159,25 +142,16 @@ void PurestConsoleChannel::processDoubleReplacing(double **inputs, double **outp
inputSampleR = sin(inputSampleR);
//amplitude aspect
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/christopherjohnson.pbxuser
index 12c4f1e..d8eeda2 100644..100755
--- a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* PurestDrive */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 538683677;
- PBXWorkspaceStateSaveDate = 538683677;
+ PBXPerProjectTemplateStateSaveDate = 569771199;
+ PBXWorkspaceStateSaveDate = 569771199;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* PurestDrive */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/christopherjohnson.perspectivev3
index 41e246d..461e4df 100644..100755
--- a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/christopherjohnson.perspectivev3
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4E5444201BA92300B5DC2A</string>
+ <string>8B793E9D21F604DA006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4E5445201BA92300B5DC2A</string>
+ <string>8B793E9E21F604DA006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4E5446201BA92300B5DC2A</string>
+ <string>8B793E9F21F604DA006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>538684550.59728301</real>
+ <real>569771226.28827202</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/PurestDrive/PurestDrive.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/PurestDrive/PurestDrive.xcodeproj</string>
</array>
<key>WindowString</key>
<string>9 381 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index a80c038..a80c038 100644..100755
--- a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
index 5c38f94..5c38f94 100644..100755
--- a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
index 314de0f..314de0f 100644..100755
--- a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/spiadmin.mode1v3
index c572326..c572326 100644..100755
--- a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/spiadmin.mode1v3
+++ b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/spiadmin.mode1v3
diff --git a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/spiadmin.pbxuser
index df94780..df94780 100644..100755
--- a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/spiadmin.pbxuser
+++ b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/spiadmin.pbxuser
diff --git a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
index 8ee693f..8ee693f 100644..100755
--- a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
+++ b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
diff --git a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
index 5bccbcb..5bccbcb 100644..100755
--- a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
index a7bdd62..a7bdd62 100644..100755
--- a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
index 0df2de4..0df2de4 100644..100755
--- a/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
+++ b/plugins/MacVST/PurestDrive/PurestDrive.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
diff --git a/plugins/MacVST/PurestDrive/source/PurestDrive.cpp b/plugins/MacVST/PurestDrive/source/PurestDrive.cpp
index e2451fe..a1d9264 100755
--- a/plugins/MacVST/PurestDrive/source/PurestDrive.cpp
+++ b/plugins/MacVST/PurestDrive/source/PurestDrive.cpp
@@ -17,11 +17,8 @@ PurestDrive::PurestDrive(audioMasterCallback audioMaster) :
previousSampleL = 0.0;
previousSampleR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/PurestDrive/source/PurestDrive.h b/plugins/MacVST/PurestDrive/source/PurestDrive.h
index 1f5b349..abcd65b 100755
--- a/plugins/MacVST/PurestDrive/source/PurestDrive.h
+++ b/plugins/MacVST/PurestDrive/source/PurestDrive.h
@@ -52,11 +52,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double previousSampleL;
diff --git a/plugins/MacVST/PurestDrive/source/PurestDriveProc.cpp b/plugins/MacVST/PurestDrive/source/PurestDriveProc.cpp
index e453883..f5cc804 100755
--- a/plugins/MacVST/PurestDrive/source/PurestDriveProc.cpp
+++ b/plugins/MacVST/PurestDrive/source/PurestDriveProc.cpp
@@ -14,9 +14,6 @@ void PurestDrive::processReplacing(float **inputs, float **outputs, VstInt32 sam
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double intensity = A;
double drySampleL;
@@ -90,25 +87,14 @@ void PurestDrive::processReplacing(float **inputs, float **outputs, VstInt32 sam
previousSampleR = sin(drySampleR);
//apply the sine while storing previous sample
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -127,9 +113,6 @@ void PurestDrive::processDoubleReplacing(double **inputs, double **outputs, VstI
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double intensity = A;
double drySampleL;
@@ -204,25 +187,16 @@ void PurestDrive::processDoubleReplacing(double **inputs, double **outputs, VstI
previousSampleR = sin(drySampleR);
//apply the sine while storing previous sample
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/christopherjohnson.pbxuser
index fcc45c3..87fae12 100755
--- a/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* PurestEcho */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461666;
- PBXWorkspaceStateSaveDate = 528461666;
+ PBXPerProjectTemplateStateSaveDate = 569771267;
+ PBXWorkspaceStateSaveDate = 569771267;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* PurestEcho */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/christopherjohnson.perspectivev3
index f80d304..a80a475 100755
--- a/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/christopherjohnson.perspectivev3
@@ -360,18 +360,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>612 265 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -385,7 +385,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
<string>612 265 810 487 0 0 1440 878 </string>
</dict>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7D2C1F7FAF74007AB60F</string>
+ <string>8B793EC621F6054B006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7D2D1F7FAF74007AB60F</string>
+ <string>8B793EC721F6054B006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7D2E1F7FAF74007AB60F</string>
+ <string>8B793EC821F6054B006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461684.32955098</real>
+ <real>569771339.31522799</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7D2F1F7FAF74007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/PurestEcho/PurestEcho.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/project.pbxproj b/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/project.pbxproj
index 02231e4..43171c9 100755
--- a/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/PurestEcho/PurestEcho.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* PurestEcho */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "PurestEcho" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
+ 8D01CCC60486CAD60068D4B7 /* PurestEcho */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/PurestEcho/source/PurestEcho.cpp b/plugins/MacVST/PurestEcho/source/PurestEcho.cpp
index 6b8c302..6bcaa3f 100755
--- a/plugins/MacVST/PurestEcho/source/PurestEcho.cpp
+++ b/plugins/MacVST/PurestEcho/source/PurestEcho.cpp
@@ -19,11 +19,8 @@ PurestEcho::PurestEcho(audioMasterCallback audioMaster) :
E = 0.0;
for(int count = 0; count < totalsamples-1; count++) {dL[count] = 0;dR[count] = 0;}
gcount = 0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/PurestEcho/source/PurestEcho.h b/plugins/MacVST/PurestEcho/source/PurestEcho.h
index a298dd2..870e158 100755
--- a/plugins/MacVST/PurestEcho/source/PurestEcho.h
+++ b/plugins/MacVST/PurestEcho/source/PurestEcho.h
@@ -62,11 +62,8 @@ private:
int gcount;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/PurestEcho/source/PurestEchoProc.cpp b/plugins/MacVST/PurestEcho/source/PurestEchoProc.cpp
index 77e4b2f..e8e141c 100755
--- a/plugins/MacVST/PurestEcho/source/PurestEchoProc.cpp
+++ b/plugins/MacVST/PurestEcho/source/PurestEchoProc.cpp
@@ -76,9 +76,6 @@ void PurestEcho::processReplacing(float **inputs, float **outputs, VstInt32 samp
double delaysBufferL;
double delaysBufferR;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -177,25 +174,14 @@ void PurestEcho::processReplacing(float **inputs, float **outputs, VstInt32 samp
gcount--;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -276,9 +262,6 @@ void PurestEcho::processDoubleReplacing(double **inputs, double **outputs, VstIn
double delaysBufferL;
double delaysBufferR;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -377,25 +360,16 @@ void PurestEcho::processDoubleReplacing(double **inputs, double **outputs, VstIn
gcount--;
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/christopherjohnson.pbxuser
index 11a21ab..60f46c3 100644..100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* PurestGain */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 530661522;
- PBXWorkspaceStateSaveDate = 530661522;
+ PBXPerProjectTemplateStateSaveDate = 569771364;
+ PBXWorkspaceStateSaveDate = 569771364;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -82,9 +82,9 @@
};
24D8286F09A914000093AEF8 /* PurestGainProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 4095}}";
- sepNavSelRange = "{8041, 1892}";
- sepNavVisRange = "{2228, 2390}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 3484}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{7696, 2006}";
sepNavWindowFrame = "{{488, 47}, {895, 831}}";
};
};
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* PurestGain */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/christopherjohnson.perspectivev3
index f4f1de3..3986363 100644..100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>5</integer>
+ <integer>6</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>711 333 810 487 0 0 1440 878 </string>
+ <string>630 333 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -362,7 +362,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>711 333 810 487 0 0 1440 878 </string>
+ <string>630 333 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -387,7 +387,7 @@
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
- <string>711 333 810 487 0 0 1440 878 </string>
+ <string>630 333 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BA972EE1FA145A50032B992</string>
+ <string>8B793EDC21F6057A006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BA972EF1FA145A50032B992</string>
+ <string>8B793EDD21F6057A006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BA972F01FA145A50032B992</string>
+ <string>8B793EDE21F6057A006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>530662821.72906101</real>
+ <real>569771386.05235398</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,11 +643,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BA972F11FA145A50032B992</string>
<string>/Users/christopherjohnson/Desktop/MacVST/PurestGain/PurestGain.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>711 333 810 487 0 0 1440 878 </string>
+ <string>630 333 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.pbxproj b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.pbxproj
index b89fc20..511f09f 100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* PurestGain */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "PurestGain" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* PurestGain */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index a80c038..a80c038 100644..100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
index 5c38f94..5c38f94 100644..100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
index 314de0f..314de0f 100644..100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/spiadmin.mode1v3
index c572326..c572326 100644..100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/spiadmin.mode1v3
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/spiadmin.mode1v3
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/spiadmin.pbxuser
index df94780..df94780 100644..100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/spiadmin.pbxuser
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/spiadmin.pbxuser
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
index 8ee693f..8ee693f 100644..100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
index 5bccbcb..5bccbcb 100644..100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
index a7bdd62..a7bdd62 100644..100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
index 0df2de4..0df2de4 100644..100755
--- a/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
+++ b/plugins/MacVST/PurestGain/PurestGain.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
diff --git a/plugins/MacVST/PurestGain/source/PurestGain.cpp b/plugins/MacVST/PurestGain/source/PurestGain.cpp
index 3091a12..b1b77fe 100755
--- a/plugins/MacVST/PurestGain/source/PurestGain.cpp
+++ b/plugins/MacVST/PurestGain/source/PurestGain.cpp
@@ -18,11 +18,8 @@ PurestGain::PurestGain(audioMasterCallback audioMaster) :
settingchase = -90.0;
gainBchase = -90.0;
chasespeed = 350.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/PurestGain/source/PurestGain.h b/plugins/MacVST/PurestGain/source/PurestGain.h
index 7869425..9e2baea 100755
--- a/plugins/MacVST/PurestGain/source/PurestGain.h
+++ b/plugins/MacVST/PurestGain/source/PurestGain.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double gainchase;
double settingchase;
diff --git a/plugins/MacVST/PurestGain/source/PurestGainProc.cpp b/plugins/MacVST/PurestGain/source/PurestGainProc.cpp
index 38f2849..4aa6d96 100755
--- a/plugins/MacVST/PurestGain/source/PurestGainProc.cpp
+++ b/plugins/MacVST/PurestGain/source/PurestGainProc.cpp
@@ -43,9 +43,6 @@ void PurestGain::processReplacing(float **inputs, float **outputs, VstInt32 samp
//done with slow fade controller
double outputgain;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -118,45 +115,19 @@ void PurestGain::processReplacing(float **inputs, float **outputs, VstInt32 samp
if (1.0 == outputgain)
{
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
*out1 = *in1;
*out2 = *in2;
} else {
inputSampleL *= outputgain;
inputSampleR *= outputgain;
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
}
@@ -204,9 +175,6 @@ void PurestGain::processDoubleReplacing(double **inputs, double **outputs, VstIn
//done with slow fade controller
double outputgain;
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -273,45 +241,21 @@ void PurestGain::processDoubleReplacing(double **inputs, double **outputs, VstIn
if (1.0 == outputgain)
{
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
*out1 = *in1;
*out2 = *in2;
} else {
inputSampleL *= outputgain;
inputSampleR *= outputgain;
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
}
diff --git a/plugins/MacVST/PurestWarm/PurestWarm.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/PurestWarm/PurestWarm.xcodeproj/christopherjohnson.pbxuser
index d3ee7f1..f6f6607 100755
--- a/plugins/MacVST/PurestWarm/PurestWarm.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/PurestWarm/PurestWarm.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 532825574;
- PBXWorkspaceStateSaveDate = 532825574;
+ PBXPerProjectTemplateStateSaveDate = 569771412;
+ PBXWorkspaceStateSaveDate = 569771412;
};
perUserProjectItems = {
- 8B2C4C211FC246470023028A /* PBXTextBookmark */ = 8B2C4C211FC246470023028A /* PBXTextBookmark */;
8B2C4C221FC246470023028A /* PBXTextBookmark */ = 8B2C4C221FC246470023028A /* PBXTextBookmark */;
+ 8B793EFC21F605B1006E9731 /* PBXTextBookmark */ = 8B793EFC21F605B1006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -86,9 +86,9 @@
};
24D8286F09A914000093AEF8 /* PurestWarmProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {684, 4498}}";
+ sepNavIntBoundsRect = "{{0, 0}, {677, 3367}}";
sepNavSelRange = "{8348, 0}";
- sepNavVisRange = "{1656, 322}";
+ sepNavVisRange = "{1663, 324}";
sepNavWindowFrame = "{{40, 47}, {895, 831}}";
};
};
@@ -106,25 +106,25 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B2C4C211FC246470023028A /* PBXTextBookmark */ = {
+ 8B2C4C221FC246470023028A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* PurestWarmProc.cpp */;
name = "PurestWarmProc.cpp: 246";
rLen = 0;
rLoc = 8348;
rType = 0;
- vrLen = 339;
- vrLoc = 1684;
+ vrLen = 322;
+ vrLoc = 1656;
};
- 8B2C4C221FC246470023028A /* PBXTextBookmark */ = {
+ 8B793EFC21F605B1006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* PurestWarmProc.cpp */;
- name = "PurestWarmProc.cpp: 246";
+ name = "PurestWarmProc.cpp: 212";
rLen = 0;
rLoc = 8348;
rType = 0;
- vrLen = 322;
- vrLoc = 1656;
+ vrLen = 324;
+ vrLoc = 1663;
};
8D01CCC60486CAD60068D4B7 /* PurestWarm */ = {
activeExec = 0;
diff --git a/plugins/MacVST/PurestWarm/PurestWarm.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/PurestWarm/PurestWarm.xcodeproj/christopherjohnson.perspectivev3
index a787ecd..c7c8a82 100755
--- a/plugins/MacVST/PurestWarm/PurestWarm.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/PurestWarm/PurestWarm.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B2C4C221FC246470023028A</string>
+ <string>8B793EFC21F605B1006E9731</string>
<key>history</key>
<array>
- <string>8B2C4C211FC246470023028A</string>
+ <string>8B2C4C221FC246470023028A</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>168 216 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
<key>RubberWindowFrame</key>
<string>168 216 810 487 0 0 1440 878 </string>
</dict>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B2C4C231FC246470023028A</string>
+ <string>8B793EFD21F605B1006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B2C4C241FC246470023028A</string>
+ <string>8B793EFE21F605B1006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B2C4C251FC246470023028A</string>
+ <string>8B793EFF21F605B1006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>532825671.66727102</real>
+ <real>569771441.44578099</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B2C4C261FC246470023028A</string>
<string>/Users/christopherjohnson/Desktop/MacVST/PurestWarm/PurestWarm.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/PurestWarm/source/PurestWarm.cpp b/plugins/MacVST/PurestWarm/source/PurestWarm.cpp
index 475e845..eeee37b 100755
--- a/plugins/MacVST/PurestWarm/source/PurestWarm.cpp
+++ b/plugins/MacVST/PurestWarm/source/PurestWarm.cpp
@@ -13,11 +13,8 @@ PurestWarm::PurestWarm(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/PurestWarm/source/PurestWarm.h b/plugins/MacVST/PurestWarm/source/PurestWarm.h
index c67a91e..98bb0ce 100755
--- a/plugins/MacVST/PurestWarm/source/PurestWarm.h
+++ b/plugins/MacVST/PurestWarm/source/PurestWarm.h
@@ -52,11 +52,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/PurestWarm/source/PurestWarmProc.cpp b/plugins/MacVST/PurestWarm/source/PurestWarmProc.cpp
index b5a5070..101c931 100755
--- a/plugins/MacVST/PurestWarm/source/PurestWarmProc.cpp
+++ b/plugins/MacVST/PurestWarm/source/PurestWarmProc.cpp
@@ -14,9 +14,6 @@ void PurestWarm::processReplacing(float **inputs, float **outputs, VstInt32 samp
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
int polarity = (int) ( A * 1.999 );
@@ -71,103 +68,55 @@ void PurestWarm::processReplacing(float **inputs, float **outputs, VstInt32 samp
if (inputSampleL < 0)
{
inputSampleL = -(sin(-inputSampleL*1.57079634)/1.57079634);
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- }
- } else {
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- }
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
}
-
if (inputSampleR < 0)
{
inputSampleR = -(sin(-inputSampleR*1.57079634)/1.57079634);
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- } else {
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- } else {
- if (fpFlip) {
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- } else {
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- }
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
}
-
} else {
-
if (inputSampleL > 0)
{
inputSampleL = sin(inputSampleL*1.57079634)/1.57079634;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- }
- } else {
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- }
- }
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
+ }
if (inputSampleR > 0)
{
inputSampleR = sin(inputSampleR*1.57079634)/1.57079634;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- } else {
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- } else {
- if (fpFlip) {
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- } else {
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- }
- }
-
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
+ }
}
//that's it. Only applies on one half of the waveform, other half is passthrough untouched.
- //even the floating point noise shaping to the 32 bit buss is only applied as needed.
-
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -186,9 +135,6 @@ void PurestWarm::processDoubleReplacing(double **inputs, double **outputs, VstIn
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
int polarity = (int) ( A * 1.999 );
@@ -243,103 +189,63 @@ void PurestWarm::processDoubleReplacing(double **inputs, double **outputs, VstIn
if (inputSampleL < 0)
{
inputSampleL = -(sin(-inputSampleL*1.57079634)/1.57079634);
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- }
- } else {
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- }
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
}
if (inputSampleR < 0)
{
inputSampleR = -(sin(-inputSampleR*1.57079634)/1.57079634);
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- } else {
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- } else {
- if (fpFlip) {
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- } else {
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- }
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
}
-
} else {
-
if (inputSampleL > 0)
{
inputSampleL = sin(inputSampleL*1.57079634)/1.57079634;
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- }
- } else {
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- } else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- }
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
}
-
if (inputSampleR > 0)
{
inputSampleR = sin(inputSampleR*1.57079634)/1.57079634;
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- } else {
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- } else {
- if (fpFlip) {
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- } else {
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- }
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
}
-
}
//that's it. Only applies on one half of the waveform, other half is passthrough untouched.
- //even the floating point noise shaping to the 32 bit buss is only applied as needed.
-
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Pyewacket/Pyewacket.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Pyewacket/Pyewacket.xcodeproj/christopherjohnson.pbxuser
index 7900b2c..378f89f 100755
--- a/plugins/MacVST/Pyewacket/Pyewacket.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Pyewacket/Pyewacket.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461728;
- PBXWorkspaceStateSaveDate = 528461728;
+ PBXPerProjectTemplateStateSaveDate = 569771462;
+ PBXWorkspaceStateSaveDate = 569771462;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
diff --git a/plugins/MacVST/Pyewacket/Pyewacket.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Pyewacket/Pyewacket.xcodeproj/christopherjohnson.perspectivev3
index c05f255..6841380 100755
--- a/plugins/MacVST/Pyewacket/Pyewacket.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Pyewacket/Pyewacket.xcodeproj/christopherjohnson.perspectivev3
@@ -360,18 +360,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 32}}</string>
+ <string>{{0, 0}, {603, 13}}</string>
<key>RubberWindowFrame</key>
<string>498 357 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>32pt</string>
+ <string>13pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>409pt</string>
+ <string>428pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -385,7 +385,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 382}}</string>
+ <string>{{10, 27}, {603, 401}}</string>
<key>RubberWindowFrame</key>
<string>498 357 810 487 0 0 1440 878 </string>
</dict>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7D6A1F7FAFB4007AB60F</string>
+ <string>8B793F1C21F605CE006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7D6B1F7FAFB4007AB60F</string>
+ <string>8B793F1D21F605CE006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7D6C1F7FAFB4007AB60F</string>
+ <string>8B793F1E21F605CE006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461748.86590397</real>
+ <real>569771470.99615598</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7D6D1F7FAFB4007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Pyewacket/Pyewacket.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Pyewacket/source/Pyewacket.cpp b/plugins/MacVST/Pyewacket/source/Pyewacket.cpp
index ee2db40..d500e74 100755
--- a/plugins/MacVST/Pyewacket/source/Pyewacket.cpp
+++ b/plugins/MacVST/Pyewacket/source/Pyewacket.cpp
@@ -18,11 +18,8 @@ Pyewacket::Pyewacket(audioMasterCallback audioMaster) :
chase = 1.0;
lastrectifierL = 0.0;
lastrectifierR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Pyewacket/source/Pyewacket.h b/plugins/MacVST/Pyewacket/source/Pyewacket.h
index 593001f..087a198 100755
--- a/plugins/MacVST/Pyewacket/source/Pyewacket.h
+++ b/plugins/MacVST/Pyewacket/source/Pyewacket.h
@@ -54,11 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double chase;
double lastrectifierL;
diff --git a/plugins/MacVST/Pyewacket/source/PyewacketProc.cpp b/plugins/MacVST/Pyewacket/source/PyewacketProc.cpp
index 83112a2..8b3021a 100755
--- a/plugins/MacVST/Pyewacket/source/PyewacketProc.cpp
+++ b/plugins/MacVST/Pyewacket/source/PyewacketProc.cpp
@@ -17,9 +17,8 @@ void Pyewacket::processReplacing(float **inputs, float **outputs, VstInt32 sampl
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
+ long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
long double drySampleL;
@@ -134,25 +133,14 @@ void Pyewacket::processReplacing(float **inputs, float **outputs, VstInt32 sampl
inputSampleR *= outputGain;
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -174,9 +162,8 @@ void Pyewacket::processDoubleReplacing(double **inputs, double **outputs, VstInt
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
+ long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
long double drySampleL;
@@ -291,25 +278,16 @@ void Pyewacket::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleR *= outputGain;
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Righteous4/Righteous4.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Righteous4/Righteous4.xcodeproj/christopherjohnson.pbxuser
index c893227..8c45194 100755
--- a/plugins/MacVST/Righteous4/Righteous4.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Righteous4/Righteous4.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 548242463;
- PBXWorkspaceStateSaveDate = 548242463;
+ PBXPerProjectTemplateStateSaveDate = 569771492;
+ PBXWorkspaceStateSaveDate = 569771492;
};
perUserProjectItems = {
- 8BBFF86120AD84A2005650EF /* PBXTextBookmark */ = 8BBFF86120AD84A2005650EF /* PBXTextBookmark */;
+ 8B793F3B21F605EC006E9731 /* PBXTextBookmark */ = 8B793F3B21F605EC006E9731 /* PBXTextBookmark */;
8BBFF86220AD84A2005650EF /* PBXTextBookmark */ = 8BBFF86220AD84A2005650EF /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -62,9 +62,9 @@
};
2407DEB6089929BA00EB68BF /* Righteous4.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {740, 3198}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 3081}}";
sepNavSelRange = "{1957, 0}";
- sepNavVisRange = "{1892, 150}";
+ sepNavVisRange = "{1892, 108}";
sepNavWindowFrame = "{{9, 39}, {895, 831}}";
};
};
@@ -106,14 +106,14 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BBFF86120AD84A2005650EF /* PBXTextBookmark */ = {
+ 8B793F3B21F605EC006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* Righteous4.cpp */;
name = "Righteous4.cpp: 98";
rLen = 0;
rLoc = 1957;
rType = 0;
- vrLen = 150;
+ vrLen = 108;
vrLoc = 1892;
};
8BBFF86220AD84A2005650EF /* PBXTextBookmark */ = {
diff --git a/plugins/MacVST/Righteous4/Righteous4.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Righteous4/Righteous4.xcodeproj/christopherjohnson.perspectivev3
index 54f4b98..8e2d830 100755
--- a/plugins/MacVST/Righteous4/Righteous4.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Righteous4/Righteous4.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BBFF86220AD84A2005650EF</string>
+ <string>8B793F3B21F605EC006E9731</string>
<key>history</key>
<array>
- <string>8BBFF86120AD84A2005650EF</string>
+ <string>8BBFF86220AD84A2005650EF</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>595 333 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
<key>RubberWindowFrame</key>
<string>595 333 810 487 0 0 1440 878 </string>
</dict>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBFF86320AD84A2005650EF</string>
+ <string>8B793F3C21F605EC006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBFF86420AD84A2005650EF</string>
+ <string>8B793F3D21F605EC006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBFF86520AD84A2005650EF</string>
+ <string>8B793F3E21F605EC006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>548242594.083197</real>
+ <real>569771500.34394598</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BBFF86620AD84A2005650EF</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Righteous4/Righteous4.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Righteous4/source/Righteous4Proc.cpp b/plugins/MacVST/Righteous4/source/Righteous4Proc.cpp
index 7ed44cf..630360f 100755
--- a/plugins/MacVST/Righteous4/source/Righteous4Proc.cpp
+++ b/plugins/MacVST/Righteous4/source/Righteous4Proc.cpp
@@ -300,17 +300,14 @@ void Righteous4::processReplacing(float **inputs, float **outputs, VstInt32 samp
//output dither section
if (bitDepth == 3) {
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
} else {
//entire Naturalize section used when not on 32 bit out
@@ -515,12 +512,6 @@ void Righteous4::processReplacing(float **inputs, float **outputs, VstInt32 samp
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void Righteous4::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -529,11 +520,11 @@ void Righteous4::processDoubleReplacing(double **inputs, double **outputs, VstIn
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
+ long double fpOld = 0.618033988749894848204586; //golden ratio!
+ long double fpNew = 1.0 - fpOld;
double IIRscaleback = 0.0002597;//scaleback of harmonic avg
IIRscaleback /= overallscale;
IIRscaleback = 1.0 - IIRscaleback;
@@ -816,17 +807,16 @@ void Righteous4::processDoubleReplacing(double **inputs, double **outputs, VstIn
//output dither section
if (bitDepth == 3) {
- //noise shaping to 32-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
} else {
//entire Naturalize section used when not on 32 bit out
@@ -1031,10 +1021,4 @@ void Righteous4::processDoubleReplacing(double **inputs, double **outputs, VstIn
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
} \ No newline at end of file
diff --git a/plugins/MacVST/SideDull/SideDull.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/SideDull/SideDull.xcodeproj/christopherjohnson.pbxuser
index 6a2257b..4d8e56b 100755
--- a/plugins/MacVST/SideDull/SideDull.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/SideDull/SideDull.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* SideDull */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461758;
- PBXWorkspaceStateSaveDate = 528461758;
+ PBXPerProjectTemplateStateSaveDate = 569771557;
+ PBXWorkspaceStateSaveDate = 569771557;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -58,17 +58,17 @@
};
2407DEB6089929BA00EB68BF /* SideDull.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1625}}";
- sepNavSelRange = "{3760, 0}";
- sepNavVisRange = "{2540, 1852}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1586}}";
+ sepNavSelRange = "{542, 0}";
+ sepNavVisRange = "{0, 2119}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* SideDull.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 871}}";
- sepNavSelRange = "{2409, 0}";
- sepNavVisRange = "{313, 2247}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 845}}";
+ sepNavSelRange = "{2482, 0}";
+ sepNavVisRange = "{280, 2228}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
@@ -82,9 +82,9 @@
};
24D8286F09A914000093AEF8 /* SideDullProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 2990}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 2704}}";
sepNavSelRange = "{5347, 0}";
- sepNavVisRange = "{0, 1946}";
+ sepNavVisRange = "{5028, 1960}";
sepNavWindowFrame = "{{430, 47}, {895, 831}}";
};
};
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* SideDull */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/SideDull/SideDull.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/SideDull/SideDull.xcodeproj/christopherjohnson.perspectivev3
index a8f957e..d35103a 100755
--- a/plugins/MacVST/SideDull/SideDull.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/SideDull/SideDull.xcodeproj/christopherjohnson.perspectivev3
@@ -386,8 +386,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
- <key>RubberWindowFrame</key>
- <string>428 317 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -441,7 +439,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>428 317 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7D891F7FAFCE007AB60F</string>
+ <string>8B793F6821F60667006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7D8A1F7FAFCE007AB60F</string>
+ <string>8B793F6921F60667006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7D8B1F7FAFCE007AB60F</string>
+ <string>8B793F6A21F60667006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461774.64021301</real>
+ <real>569771623.27479804</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7D8C1F7FAFCE007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/SideDull/SideDull.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/SideDull/SideDull.xcodeproj/project.pbxproj b/plugins/MacVST/SideDull/SideDull.xcodeproj/project.pbxproj
index ba99bc0..7e35731 100755
--- a/plugins/MacVST/SideDull/SideDull.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/SideDull/SideDull.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* SideDull */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "SideDull" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
+ 8D01CCC60486CAD60068D4B7 /* SideDull */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/SideDull/source/SideDull.cpp b/plugins/MacVST/SideDull/source/SideDull.cpp
index 547f1fd..479bdfd 100755
--- a/plugins/MacVST/SideDull/source/SideDull.cpp
+++ b/plugins/MacVST/SideDull/source/SideDull.cpp
@@ -16,10 +16,8 @@ SideDull::SideDull(audioMasterCallback audioMaster) :
iirSampleA = 0.0;
iirSampleB = 0.0;
flip = true;
- fpNShapeAL = 0.0;
- fpNShapeBL = 0.0;
- fpNShapeAR = 0.0;
- fpNShapeBR = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/SideDull/source/SideDull.h b/plugins/MacVST/SideDull/source/SideDull.h
index 6f431ac..ef5e892 100755
--- a/plugins/MacVST/SideDull/source/SideDull.h
+++ b/plugins/MacVST/SideDull/source/SideDull.h
@@ -55,10 +55,8 @@ private:
double iirSampleA;
double iirSampleB;
bool flip;
- long double fpNShapeAL;
- long double fpNShapeBL;
- long double fpNShapeAR;
- long double fpNShapeBR;
+ long double fpNShapeL;
+ long double fpNShapeR;
float A;
};
diff --git a/plugins/MacVST/SideDull/source/SideDullProc.cpp b/plugins/MacVST/SideDull/source/SideDullProc.cpp
index 347e5e8..7b77744 100755
--- a/plugins/MacVST/SideDull/source/SideDullProc.cpp
+++ b/plugins/MacVST/SideDull/source/SideDullProc.cpp
@@ -17,9 +17,6 @@ void SideDull::processReplacing(float **inputs, float **outputs, VstInt32 sample
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -88,27 +85,14 @@ void SideDull::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
- //noise shaping to 32-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
-
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
-
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -130,9 +114,6 @@ void SideDull::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -201,27 +182,16 @@ void SideDull::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
- //noise shaping to 64-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
-
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
-
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Sidepass/Sidepass.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Sidepass/Sidepass.xcodeproj/christopherjohnson.pbxuser
index 12ff98b..92e6c81 100755
--- a/plugins/MacVST/Sidepass/Sidepass.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Sidepass/Sidepass.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461783;
- PBXWorkspaceStateSaveDate = 528461783;
+ PBXPerProjectTemplateStateSaveDate = 569771653;
+ PBXWorkspaceStateSaveDate = 569771653;
};
perUserProjectItems = {
- 8B9D6FCC1F7EF6A6007AB60F /* PBXTextBookmark */ = 8B9D6FCC1F7EF6A6007AB60F /* PBXTextBookmark */;
+ 8B793F8921F606AF006E9731 /* PBXTextBookmark */ = 8B793F8921F606AF006E9731 /* PBXTextBookmark */;
8B9D7DB21F7FB00A007AB60F /* PBXTextBookmark */ = 8B9D7DB21F7FB00A007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -62,17 +62,17 @@
};
2407DEB6089929BA00EB68BF /* Sidepass.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1625}}";
- sepNavSelRange = "{3758, 0}";
- sepNavVisRange = "{173, 2048}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1599}}";
+ sepNavSelRange = "{542, 0}";
+ sepNavVisRange = "{173, 2011}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Sidepass.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 897}}";
- sepNavSelRange = "{2409, 0}";
- sepNavVisRange = "{329, 2248}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 871}}";
+ sepNavSelRange = "{2482, 0}";
+ sepNavVisRange = "{313, 2212}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
@@ -86,7 +86,7 @@
};
24D8286F09A914000093AEF8 /* SidepassProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 2977}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 2613}}";
sepNavSelRange = "{6779, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{425, 47}, {895, 831}}";
@@ -106,10 +106,10 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D6FCC1F7EF6A6007AB60F /* PBXTextBookmark */ = {
+ 8B793F8921F606AF006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* SidepassProc.cpp */;
- name = "SidepassProc.cpp: 199";
+ name = "SidepassProc.cpp: 190";
rLen = 0;
rLoc = 6779;
rType = 0;
diff --git a/plugins/MacVST/Sidepass/Sidepass.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Sidepass/Sidepass.xcodeproj/christopherjohnson.perspectivev3
index b4e2cb8..bc5c2b8 100755
--- a/plugins/MacVST/Sidepass/Sidepass.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Sidepass/Sidepass.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7DB21F7FB00A007AB60F</string>
+ <string>8B793F8921F606AF006E9731</string>
<key>history</key>
<array>
- <string>8B9D6FCC1F7EF6A6007AB60F</string>
+ <string>8B9D7DB21F7FB00A007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -394,8 +394,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
- <key>RubberWindowFrame</key>
- <string>376 351 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -449,7 +447,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 382}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>376 351 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7DB31F7FB00A007AB60F</string>
+ <string>8B793F8A21F606AF006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7DB41F7FB00A007AB60F</string>
+ <string>8B793F8B21F606AF006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7DB51F7FB00A007AB60F</string>
+ <string>8B793F8C21F606AF006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461834.34984702</real>
+ <real>569771695.78669202</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,8 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7DB61F7FB00A007AB60F</string>
+ <string>8B793F8D21F606AF006E9731</string>
+ <string>8B793F8E21F606AF006E9731</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Sidepass/Sidepass.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Sidepass/source/Sidepass.cpp b/plugins/MacVST/Sidepass/source/Sidepass.cpp
index 98f6f3a..a28c212 100755
--- a/plugins/MacVST/Sidepass/source/Sidepass.cpp
+++ b/plugins/MacVST/Sidepass/source/Sidepass.cpp
@@ -16,10 +16,8 @@ Sidepass::Sidepass(audioMasterCallback audioMaster) :
iirSampleA = 0.0;
iirSampleB = 0.0;
flip = true;
- fpNShapeAL = 0.0;
- fpNShapeBL = 0.0;
- fpNShapeAR = 0.0;
- fpNShapeBR = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Sidepass/source/Sidepass.h b/plugins/MacVST/Sidepass/source/Sidepass.h
index 0e496f5..1b31b91 100755
--- a/plugins/MacVST/Sidepass/source/Sidepass.h
+++ b/plugins/MacVST/Sidepass/source/Sidepass.h
@@ -55,10 +55,8 @@ private:
double iirSampleA;
double iirSampleB;
bool flip;
- long double fpNShapeAL;
- long double fpNShapeBL;
- long double fpNShapeAR;
- long double fpNShapeBR;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/Sidepass/source/SidepassProc.cpp b/plugins/MacVST/Sidepass/source/SidepassProc.cpp
index d022df3..834ae3e 100755
--- a/plugins/MacVST/Sidepass/source/SidepassProc.cpp
+++ b/plugins/MacVST/Sidepass/source/SidepassProc.cpp
@@ -17,9 +17,6 @@ void Sidepass::processReplacing(float **inputs, float **outputs, VstInt32 sample
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double iirAmount = pow(A,3)/overallscale;
long double inputSampleL;
long double inputSampleR;
@@ -87,25 +84,14 @@ void Sidepass::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
- //noise shaping to 32-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -127,9 +113,6 @@ void Sidepass::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double iirAmount = pow(A,3)/overallscale;
long double inputSampleL;
long double inputSampleR;
@@ -197,25 +180,16 @@ void Sidepass::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
- //noise shaping to 64-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/SingleEndedTriode/SingleEndedTriode.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/SingleEndedTriode/SingleEndedTriode.xcodeproj/christopherjohnson.pbxuser
index 666e6a8..76b994a 100755
--- a/plugins/MacVST/SingleEndedTriode/SingleEndedTriode.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/SingleEndedTriode/SingleEndedTriode.xcodeproj/christopherjohnson.pbxuser
@@ -49,14 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 547786592;
- PBXWorkspaceStateSaveDate = 547786592;
+ PBXPerProjectTemplateStateSaveDate = 569771858;
+ PBXWorkspaceStateSaveDate = 569771858;
};
perUserProjectItems = {
- 8B7E3E7A20A690EE00482CB5 /* PBXBookmark */ = 8B7E3E7A20A690EE00482CB5 /* PBXBookmark */;
- 8B7E3E8320A6930B00482CB5 /* XCBuildMessageTextBookmark */ = 8B7E3E8320A6930B00482CB5 /* XCBuildMessageTextBookmark */;
+ 8B793FA121F60766006E9731 /* PBXTextBookmark */ = 8B793FA121F60766006E9731 /* PBXTextBookmark */;
8B7E3E8420A6930B00482CB5 /* PBXTextBookmark */ = 8B7E3E8420A6930B00482CB5 /* PBXTextBookmark */;
- 8B7E3E8720A6930B00482CB5 /* PBXTextBookmark */ = 8B7E3E8720A6930B00482CB5 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -80,17 +78,17 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19747}}";
+ sepNavIntBoundsRect = "{{0, 0}, {838, 19877}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10459, 399}";
+ sepNavVisRange = "{10459, 280}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* SingleEndedTriodeProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 3978}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 3744}}";
sepNavSelRange = "{10510, 0}";
- sepNavVisRange = "{1431, 2096}";
+ sepNavVisRange = "{3404, 1933}";
sepNavWindowFrame = "{{26, 47}, {895, 831}}";
};
};
@@ -108,18 +106,15 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B7E3E7A20A690EE00482CB5 /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 24D8286F09A914000093AEF8 /* SingleEndedTriodeProc.cpp */;
- };
- 8B7E3E8320A6930B00482CB5 /* XCBuildMessageTextBookmark */ = {
+ 8B793FA121F60766006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "Deprecated conversion from string constant to 'char*'";
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- fallbackIsa = XCBuildMessageTextBookmark;
- rLen = 1;
- rLoc = 306;
- rType = 1;
+ name = "audioeffectx.cpp: 307";
+ rLen = 0;
+ rLoc = 10616;
+ rType = 0;
+ vrLen = 280;
+ vrLoc = 10459;
};
8B7E3E8420A6930B00482CB5 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
@@ -131,16 +126,6 @@
vrLen = 399;
vrLoc = 10459;
};
- 8B7E3E8720A6930B00482CB5 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* SingleEndedTriodeProc.cpp */;
- name = "SingleEndedTriodeProc.cpp: 279";
- rLen = 0;
- rLoc = 10510;
- rType = 0;
- vrLen = 2096;
- vrLoc = 1431;
- };
8D01CCC60486CAD60068D4B7 /* SingleEndedTriode */ = {
activeExec = 0;
};
diff --git a/plugins/MacVST/SingleEndedTriode/SingleEndedTriode.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/SingleEndedTriode/SingleEndedTriode.xcodeproj/christopherjohnson.perspectivev3
index 7b7baa9..8ba4686 100755
--- a/plugins/MacVST/SingleEndedTriode/SingleEndedTriode.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/SingleEndedTriode/SingleEndedTriode.xcodeproj/christopherjohnson.perspectivev3
@@ -222,48 +222,7 @@
</dict>
</array>
<key>OpenEditors</key>
- <array>
- <dict>
- <key>Content</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8B7E3E8520A6930B00482CB5</string>
- <key>PBXProjectModuleLabel</key>
- <string>SingleEndedTriodeProc.cpp</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>8B7E3E8620A6930B00482CB5</string>
- <key>PBXProjectModuleLabel</key>
- <string>SingleEndedTriodeProc.cpp</string>
- <key>_historyCapacity</key>
- <integer>0</integer>
- <key>bookmark</key>
- <string>8B7E3E8720A6930B00482CB5</string>
- <key>history</key>
- <array>
- <string>8B7E3E7A20A690EE00482CB5</string>
- </array>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
- <key>StatusBarVisibility</key>
- <true/>
- </dict>
- <key>Geometry</key>
- <dict>
- <key>Frame</key>
- <string>{{0, 20}, {895, 734}}</string>
- <key>PBXModuleWindowStatusBarHidden2</key>
- <false/>
- <key>RubberWindowFrame</key>
- <string>26 103 895 775 0 0 1440 878 </string>
- </dict>
- </dict>
- </array>
+ <array/>
<key>PerspectiveWidths</key>
<array>
<integer>810</integer>
@@ -297,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -362,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>27 292 810 487 0 0 1440 878 </string>
+ <string>143 323 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -390,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B7E3E8420A6930B00482CB5</string>
+ <string>8B793FA121F60766006E9731</string>
<key>history</key>
<array>
- <string>8B7E3E8320A6930B00482CB5</string>
+ <string>8B7E3E8420A6930B00482CB5</string>
</array>
</dict>
<key>SplitCount</key>
@@ -407,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
- <string>27 292 810 487 0 0 1440 878 </string>
+ <string>143 323 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -432,7 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>143 323 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -487,8 +450,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>27 292 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -516,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B7E3E5D20A68F7800482CB5</string>
+ <string>8B793FA221F60766006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B7E3E5E20A68F7800482CB5</string>
+ <string>8B793FA321F60766006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B7E3E5F20A68F7800482CB5</string>
+ <string>8B793FA421F60766006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -673,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>547787531.91072297</real>
+ <real>569771878.44873595</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -691,10 +652,10 @@
<key>WindowOrderList</key>
<array>
<string>8B7E3E8520A6930B00482CB5</string>
- <string>/Users/christopherjohnson/Desktop/SingleEndedTriode/SingleEndedTriode.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/SingleEndedTriode/SingleEndedTriode.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>27 292 810 487 0 0 1440 878 </string>
+ <string>143 323 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/SingleEndedTriode/source/SingleEndedTriodeProc.cpp b/plugins/MacVST/SingleEndedTriode/source/SingleEndedTriodeProc.cpp
index 5781165..ef6694c 100755
--- a/plugins/MacVST/SingleEndedTriode/source/SingleEndedTriodeProc.cpp
+++ b/plugins/MacVST/SingleEndedTriode/source/SingleEndedTriodeProc.cpp
@@ -127,18 +127,14 @@ void SingleEndedTriode::processReplacing(float **inputs, float **outputs, VstInt
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -148,12 +144,6 @@ void SingleEndedTriode::processReplacing(float **inputs, float **outputs, VstInt
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void SingleEndedTriode::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -276,18 +266,16 @@ void SingleEndedTriode::processDoubleReplacing(double **inputs, double **outputs
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -297,10 +285,4 @@ void SingleEndedTriode::processDoubleReplacing(double **inputs, double **outputs
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
} \ No newline at end of file
diff --git a/plugins/MacVST/Slew/Slew.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Slew/Slew.xcodeproj/christopherjohnson.pbxuser
index 74e2298..2f3f896 100755
--- a/plugins/MacVST/Slew/Slew.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Slew/Slew.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461843;
- PBXWorkspaceStateSaveDate = 528461843;
+ PBXPerProjectTemplateStateSaveDate = 569772166;
+ PBXWorkspaceStateSaveDate = 569772166;
};
perUserProjectItems = {
8B38EA6F1D5BFCFD003DFCC5 /* PBXTextBookmark */ = 8B38EA6F1D5BFCFD003DFCC5 /* PBXTextBookmark */;
- 8B9D6FEC1F7EF6DF007AB60F /* PBXTextBookmark */ = 8B9D6FEC1F7EF6DF007AB60F /* PBXTextBookmark */;
+ 8B793FC121F6088F006E9731 /* PBXTextBookmark */ = 8B793FC121F6088F006E9731 /* PBXTextBookmark */;
8B9D7DC81F7FB021007AB60F /* PBXTextBookmark */ = 8B9D7DC81F7FB021007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -71,9 +71,9 @@
};
245463B80991757100464AD3 /* Slew.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 1131}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 1092}}";
sepNavSelRange = "{2877, 0}";
- sepNavVisRange = "{2783, 41}";
+ sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
@@ -117,15 +117,15 @@
vrLen = 222;
vrLoc = 2891;
};
- 8B9D6FEC1F7EF6DF007AB60F /* PBXTextBookmark */ = {
+ 8B793FC121F6088F006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 245463B80991757100464AD3 /* Slew.h */;
name = "Slew.h: 76";
rLen = 0;
rLoc = 2877;
rType = 0;
- vrLen = 88;
- vrLoc = 2736;
+ vrLen = 0;
+ vrLoc = 0;
};
8B9D7DC81F7FB021007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/Slew/Slew.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Slew/Slew.xcodeproj/christopherjohnson.perspectivev3
index 9040f1c..bfb6744 100755
--- a/plugins/MacVST/Slew/Slew.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Slew/Slew.xcodeproj/christopherjohnson.perspectivev3
@@ -351,11 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7DC81F7FB021007AB60F</string>
+ <string>8B793FC121F6088F006E9731</string>
<key>history</key>
<array>
<string>8B38EA6F1D5BFCFD003DFCC5</string>
- <string>8B9D6FEC1F7EF6DF007AB60F</string>
+ <string>8B9D7DC81F7FB021007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 51}}</string>
+ <string>{{0, 0}, {603, 32}}</string>
<key>RubberWindowFrame</key>
<string>490 362 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>51pt</string>
+ <string>32pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>390pt</string>
+ <string>409pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,7 +394,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 363}}</string>
+ <string>{{10, 27}, {603, 382}}</string>
<key>RubberWindowFrame</key>
<string>490 362 810 487 0 0 1440 878 </string>
</dict>
@@ -478,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7DC91F7FB021007AB60F</string>
+ <string>8B793FC221F6088F006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7DCA1F7FB021007AB60F</string>
+ <string>8B793FC321F6088F006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7DCB1F7FB021007AB60F</string>
+ <string>8B793FC421F6088F006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461857.798751</real>
+ <real>569772175.32019699</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,7 +652,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7DCC1F7FB021007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Slew/Slew.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Slew2/Slew2.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Slew2/Slew2.xcodeproj/christopherjohnson.pbxuser
index 439a734..418e2e4 100755
--- a/plugins/MacVST/Slew2/Slew2.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Slew2/Slew2.xcodeproj/christopherjohnson.pbxuser
@@ -51,8 +51,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461866;
- PBXWorkspaceStateSaveDate = 528461866;
+ PBXPerProjectTemplateStateSaveDate = 569772312;
+ PBXWorkspaceStateSaveDate = 569772312;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
diff --git a/plugins/MacVST/Slew2/Slew2.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Slew2/Slew2.xcodeproj/christopherjohnson.perspectivev3
index d6da55d..fb00966 100755
--- a/plugins/MacVST/Slew2/Slew2.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Slew2/Slew2.xcodeproj/christopherjohnson.perspectivev3
@@ -339,13 +339,15 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>&lt;No Editor&gt;</string>
+ <string></string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
</dict>
<key>SplitCount</key>
<string>1</string>
@@ -467,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7DE81F7FB03B007AB60F</string>
+ <string>8B793FE121F60920006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7DE91F7FB03B007AB60F</string>
+ <string>8B793FE221F60920006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7DEA1F7FB03B007AB60F</string>
+ <string>8B793FE321F60920006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -644,7 +646,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461883.34153903</real>
+ <real>569772320.81251204</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -661,7 +663,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7DEB1F7FB03B007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Slew2/Slew2.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/christopherjohnson.pbxuser
index 1f24b3b..edacd41 100755
--- a/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* SlewOnly */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528461894;
- PBXWorkspaceStateSaveDate = 528461894;
+ PBXPerProjectTemplateStateSaveDate = 569772340;
+ PBXWorkspaceStateSaveDate = 569772340;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* SlewOnly */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/christopherjohnson.perspectivev3
index 1c0ad59..a8cc6e6 100755
--- a/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/christopherjohnson.perspectivev3
@@ -360,18 +360,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 69}}</string>
+ <string>{{0, 0}, {603, 51}}</string>
<key>RubberWindowFrame</key>
<string>471 286 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>69pt</string>
+ <string>51pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>372pt</string>
+ <string>390pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -385,7 +385,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 345}}</string>
+ <string>{{10, 27}, {603, 363}}</string>
<key>RubberWindowFrame</key>
<string>471 286 810 487 0 0 1440 878 </string>
</dict>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7E111F7FB071007AB60F</string>
+ <string>8B79400021F6093C006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7E121F7FB071007AB60F</string>
+ <string>8B79400121F6093C006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7E131F7FB071007AB60F</string>
+ <string>8B79400221F6093C006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528461937.63799101</real>
+ <real>569772348.11004496</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7E141F7FB071007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/SlewOnly/SlewOnly.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/project.pbxproj b/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/project.pbxproj
index 7da4109..fc3c402 100755
--- a/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/SlewOnly/SlewOnly.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* SlewOnly */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "SlewOnly" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* SlewOnly */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Spiral/Spiral.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Spiral/Spiral.xcodeproj/christopherjohnson.pbxuser
index af4c470..6e07b6a 100755
--- a/plugins/MacVST/Spiral/Spiral.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Spiral/Spiral.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 548242309;
- PBXWorkspaceStateSaveDate = 548242309;
+ PBXPerProjectTemplateStateSaveDate = 569772524;
+ PBXWorkspaceStateSaveDate = 569772524;
};
perUserProjectItems = {
- 8BBFF88A20AD86E4005650EF /* XCBuildMessageTextBookmark */ = 8BBFF88A20AD86E4005650EF /* XCBuildMessageTextBookmark */;
- 8BBFF88B20AD86E4005650EF /* PBXTextBookmark */ = 8BBFF88B20AD86E4005650EF /* PBXTextBookmark */;
+ 8B79401F21F60A00006E9731 /* XCBuildMessageTextBookmark */ = 8B79401F21F60A00006E9731 /* XCBuildMessageTextBookmark */;
+ 8B79402021F60A00006E9731 /* PBXTextBookmark */ = 8B79402021F60A00006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -62,9 +62,9 @@
};
2407DEB6089929BA00EB68BF /* Spiral.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {712, 1560}}";
+ sepNavIntBoundsRect = "{{0, 0}, {663, 1469}}";
sepNavSelRange = "{2153, 0}";
- sepNavVisRange = "{2034, 288}";
+ sepNavVisRange = "{2076, 246}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
@@ -106,7 +106,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BBFF88A20AD86E4005650EF /* XCBuildMessageTextBookmark */ = {
+ 8B79401F21F60A00006E9731 /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
comments = "Unused variable 'chunkData'";
fRef = 2407DEB6089929BA00EB68BF /* Spiral.cpp */;
@@ -115,15 +115,15 @@
rLoc = 57;
rType = 1;
};
- 8BBFF88B20AD86E4005650EF /* PBXTextBookmark */ = {
+ 8B79402021F60A00006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* Spiral.cpp */;
name = "Spiral.cpp: 58";
rLen = 0;
rLoc = 2153;
rType = 0;
- vrLen = 288;
- vrLoc = 2034;
+ vrLen = 246;
+ vrLoc = 2076;
};
8D01CCC60486CAD60068D4B7 /* Spiral */ = {
activeExec = 0;
diff --git a/plugins/MacVST/Spiral/Spiral.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Spiral/Spiral.xcodeproj/christopherjohnson.perspectivev3
index 77cc949..4c7e827 100755
--- a/plugins/MacVST/Spiral/Spiral.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Spiral/Spiral.xcodeproj/christopherjohnson.perspectivev3
@@ -321,7 +321,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>21 283 810 487 0 0 1440 878 </string>
+ <string>283 293 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -349,10 +349,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BBFF88B20AD86E4005650EF</string>
+ <string>8B79402021F60A00006E9731</string>
<key>history</key>
<array>
- <string>8BBFF88A20AD86E4005650EF</string>
+ <string>8B79401F21F60A00006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -366,18 +366,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
- <string>21 283 810 487 0 0 1440 878 </string>
+ <string>283 293 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -391,7 +391,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -445,9 +445,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
<key>RubberWindowFrame</key>
- <string>21 283 810 487 0 0 1440 878 </string>
+ <string>283 293 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -475,11 +475,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBFF88C20AD86E4005650EF</string>
+ <string>8B79402121F60A00006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBFF88D20AD86E4005650EF</string>
+ <string>8B79402221F60A00006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBFF88E20AD86E4005650EF</string>
+ <string>8B79402321F60A00006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -632,7 +632,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>548243172.70111001</real>
+ <real>569772544.89690602</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -649,11 +649,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BBFF88F20AD86E4005650EF</string>
- <string>/Users/christopherjohnson/Desktop/Spiral/Spiral.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/Spiral/Spiral.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>21 283 810 487 0 0 1440 878 </string>
+ <string>283 293 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Spiral/source/SpiralProc.cpp b/plugins/MacVST/Spiral/source/SpiralProc.cpp
index d43a93a..4aea5bc 100755
--- a/plugins/MacVST/Spiral/source/SpiralProc.cpp
+++ b/plugins/MacVST/Spiral/source/SpiralProc.cpp
@@ -60,18 +60,14 @@ void Spiral::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
inputSampleL = sin(inputSampleL * fabs(inputSampleL)) / ((inputSampleL == 0.0) ?1:fabs(inputSampleL));
inputSampleR = sin(inputSampleR * fabs(inputSampleR)) / ((inputSampleR == 0.0) ?1:fabs(inputSampleR));
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -81,12 +77,6 @@ void Spiral::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void Spiral::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -142,18 +132,16 @@ void Spiral::processDoubleReplacing(double **inputs, double **outputs, VstInt32
inputSampleL = sin(inputSampleL * fabs(inputSampleL)) / ((inputSampleL == 0.0) ?1:fabs(inputSampleL));
inputSampleR = sin(inputSampleR * fabs(inputSampleR)) / ((inputSampleR == 0.0) ?1:fabs(inputSampleR));
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -163,10 +151,4 @@ void Spiral::processDoubleReplacing(double **inputs, double **outputs, VstInt32
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/Spiral2/Spiral2.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Spiral2/Spiral2.xcodeproj/christopherjohnson.pbxuser
index 998d404..73c6829 100755
--- a/plugins/MacVST/Spiral2/Spiral2.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Spiral2/Spiral2.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 553978416;
- PBXWorkspaceStateSaveDate = 553978416;
+ PBXPerProjectTemplateStateSaveDate = 569772566;
+ PBXWorkspaceStateSaveDate = 569772566;
};
perUserProjectItems = {
- 8BBD182B21050DB30015A233 /* PBXBookmark */ = 8BBD182B21050DB30015A233 /* PBXBookmark */;
- 8BBD1834210525AC0015A233 /* XCBuildMessageTextBookmark */ = 8BBD1834210525AC0015A233 /* XCBuildMessageTextBookmark */;
+ 8B79404021F60A24006E9731 /* PBXTextBookmark */ = 8B79404021F60A24006E9731 /* PBXTextBookmark */;
+ 8B79404421F60A24006E9731 /* PBXTextBookmark */ = 8B79404421F60A24006E9731 /* PBXTextBookmark */;
8BBD1835210525AC0015A233 /* PBXTextBookmark */ = 8BBD1835210525AC0015A233 /* PBXTextBookmark */;
8BBD1838210525AC0015A233 /* PBXTextBookmark */ = 8BBD1838210525AC0015A233 /* PBXTextBookmark */;
};
@@ -80,17 +80,17 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19747}}";
+ sepNavIntBoundsRect = "{{0, 0}, {838, 19877}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10459, 399}";
+ sepNavVisRange = "{10459, 280}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* Spiral2Proc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 3913}}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 3497}}";
sepNavSelRange = "{8913, 0}";
- sepNavVisRange = "{6147, 2094}";
+ sepNavVisRange = "{3322, 1681}";
sepNavWindowFrame = "{{18, 47}, {895, 831}}";
};
};
@@ -108,18 +108,25 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BBD182B21050DB30015A233 /* PBXBookmark */ = {
- isa = PBXBookmark;
- fRef = 24D8286F09A914000093AEF8 /* Spiral2Proc.cpp */;
- };
- 8BBD1834210525AC0015A233 /* XCBuildMessageTextBookmark */ = {
+ 8B79404021F60A24006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "Deprecated conversion from string constant to 'char*'";
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- fallbackIsa = XCBuildMessageTextBookmark;
- rLen = 1;
- rLoc = 306;
- rType = 1;
+ name = "audioeffectx.cpp: 307";
+ rLen = 0;
+ rLoc = 10616;
+ rType = 0;
+ vrLen = 280;
+ vrLoc = 10459;
+ };
+ 8B79404421F60A24006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* Spiral2Proc.cpp */;
+ name = "Spiral2Proc.cpp: 260";
+ rLen = 0;
+ rLoc = 8913;
+ rType = 0;
+ vrLen = 1681;
+ vrLoc = 3322;
};
8BBD1835210525AC0015A233 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/Spiral2/Spiral2.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Spiral2/Spiral2.xcodeproj/christopherjohnson.perspectivev3
index 376de96..08c20ea 100755
--- a/plugins/MacVST/Spiral2/Spiral2.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Spiral2/Spiral2.xcodeproj/christopherjohnson.perspectivev3
@@ -241,10 +241,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BBD1838210525AC0015A233</string>
+ <string>8B79404421F60A24006E9731</string>
<key>history</key>
<array>
- <string>8BBD182B21050DB30015A233</string>
+ <string>8BBD1838210525AC0015A233</string>
</array>
</dict>
<key>SplitCount</key>
@@ -297,6 +297,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -362,7 +364,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>5 340 810 487 0 0 1440 878 </string>
+ <string>432 361 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -390,10 +392,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BBD1835210525AC0015A233</string>
+ <string>8B79404021F60A24006E9731</string>
<key>history</key>
<array>
- <string>8BBD1834210525AC0015A233</string>
+ <string>8BBD1835210525AC0015A233</string>
</array>
</dict>
<key>SplitCount</key>
@@ -407,18 +409,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
- <string>5 340 810 487 0 0 1440 878 </string>
+ <string>432 361 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -432,7 +434,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>432 361 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -487,8 +491,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>5 340 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -516,11 +518,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBD181021050A370015A233</string>
+ <string>8B79404121F60A24006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBD181121050A370015A233</string>
+ <string>8B79404221F60A24006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBD181221050A370015A233</string>
+ <string>8B79404321F60A24006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -673,7 +675,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>553985452.30988598</real>
+ <real>569772580.33098996</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -691,10 +693,10 @@
<key>WindowOrderList</key>
<array>
<string>8BBD1836210525AC0015A233</string>
- <string>/Users/christopherjohnson/Desktop/Spiral2/Spiral2.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/Spiral2/Spiral2.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>5 340 810 487 0 0 1440 878 </string>
+ <string>432 361 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/Spiral2/source/Spiral2Proc.cpp b/plugins/MacVST/Spiral2/source/Spiral2Proc.cpp
index d309448..a8669c5 100755
--- a/plugins/MacVST/Spiral2/source/Spiral2Proc.cpp
+++ b/plugins/MacVST/Spiral2/source/Spiral2Proc.cpp
@@ -118,18 +118,14 @@ void Spiral2::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
prevSampleR = drySampleR;
flip = !flip;
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -139,12 +135,6 @@ void Spiral2::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void Spiral2::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -259,18 +249,16 @@ void Spiral2::processDoubleReplacing(double **inputs, double **outputs, VstInt32
prevSampleR = drySampleR;
flip = !flip;
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -280,10 +268,4 @@ void Spiral2::processDoubleReplacing(double **inputs, double **outputs, VstInt32
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/StarChild/StarChild.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/StarChild/StarChild.xcodeproj/christopherjohnson.pbxuser
index 82b4c8d..dd67748 100755
--- a/plugins/MacVST/StarChild/StarChild.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/StarChild/StarChild.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528462002;
- PBXWorkspaceStateSaveDate = 528462002;
+ PBXPerProjectTemplateStateSaveDate = 569772605;
+ PBXWorkspaceStateSaveDate = 569772605;
};
perUserProjectItems = {
- 8B9D70751F7EF81B007AB60F /* PBXTextBookmark */ = 8B9D70751F7EF81B007AB60F /* PBXTextBookmark */;
+ 8B79406121F60A46006E9731 /* PBXTextBookmark */ = 8B79406121F60A46006E9731 /* PBXTextBookmark */;
8B9D7E451F7FB0C9007AB60F /* PBXTextBookmark */ = 8B9D7E451F7FB0C9007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -106,15 +106,15 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D70751F7EF81B007AB60F /* PBXTextBookmark */ = {
+ 8B79406121F60A46006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 123;
- vrLoc = 10613;
+ vrLen = 0;
+ vrLoc = 0;
};
8B9D7E451F7FB0C9007AB60F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/StarChild/StarChild.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/StarChild/StarChild.xcodeproj/christopherjohnson.perspectivev3
index dbfa3aa..7a37b96 100755
--- a/plugins/MacVST/StarChild/StarChild.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/StarChild/StarChild.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7E451F7FB0C9007AB60F</string>
+ <string>8B79406121F60A46006E9731</string>
<key>history</key>
<array>
- <string>8B9D70751F7EF81B007AB60F</string>
+ <string>8B9D7E451F7FB0C9007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 32}}</string>
+ <string>{{0, 0}, {603, 13}}</string>
<key>RubberWindowFrame</key>
<string>423 305 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>32pt</string>
+ <string>13pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>409pt</string>
+ <string>428pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 382}}</string>
+ <string>{{10, 27}, {603, 401}}</string>
<key>RubberWindowFrame</key>
<string>423 305 810 487 0 0 1440 878 </string>
</dict>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7E461F7FB0C9007AB60F</string>
+ <string>8B79406221F60A46006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7E471F7FB0C9007AB60F</string>
+ <string>8B79406321F60A46006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7E481F7FB0C9007AB60F</string>
+ <string>8B79406421F60A46006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528462025.44259501</real>
+ <real>569772614.68796301</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7E491F7FB0C9007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/StarChild/StarChild.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/StarChild/source/StarChild.cpp b/plugins/MacVST/StarChild/source/StarChild.cpp
index 84becbc..1b29d50 100755
--- a/plugins/MacVST/StarChild/source/StarChild.cpp
+++ b/plugins/MacVST/StarChild/source/StarChild.cpp
@@ -65,11 +65,8 @@ StarChild::StarChild(audioMasterCallback audioMaster) :
increment = 1;
dutyCycle = 1;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/StarChild/source/StarChild.h b/plugins/MacVST/StarChild/source/StarChild.h
index 7ae986a..630be3c 100755
--- a/plugins/MacVST/StarChild/source/StarChild.h
+++ b/plugins/MacVST/StarChild/source/StarChild.h
@@ -54,11 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double d[45102];
diff --git a/plugins/MacVST/StarChild/source/StarChildProc.cpp b/plugins/MacVST/StarChild/source/StarChildProc.cpp
index 03c8e31..047948a 100755
--- a/plugins/MacVST/StarChild/source/StarChildProc.cpp
+++ b/plugins/MacVST/StarChild/source/StarChildProc.cpp
@@ -14,9 +14,6 @@ void StarChild::processReplacing(float **inputs, float **outputs, VstInt32 sampl
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double drySampleL;
double drySampleR;
@@ -392,25 +389,14 @@ void StarChild::processReplacing(float **inputs, float **outputs, VstInt32 sampl
inputSampleR += drySampleR;
//here we combine the tanks with the dry signal
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -429,9 +415,6 @@ void StarChild::processDoubleReplacing(double **inputs, double **outputs, VstInt
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double drySampleL;
double drySampleR;
@@ -807,25 +790,16 @@ void StarChild::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleR += drySampleR;
//here we combine the tanks with the dry signal
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/StereoFX/StereoFX.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/StereoFX/StereoFX.xcodeproj/christopherjohnson.pbxuser
index 59f72aa..06f0165 100755
--- a/plugins/MacVST/StereoFX/StereoFX.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/StereoFX/StereoFX.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 546569458;
- PBXWorkspaceStateSaveDate = 546569458;
+ PBXPerProjectTemplateStateSaveDate = 569772631;
+ PBXWorkspaceStateSaveDate = 569772631;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -58,17 +58,17 @@
};
2407DEB6089929BA00EB68BF /* StereoFX.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1833}}";
- sepNavSelRange = "{601, 0}";
- sepNavVisRange = "{2949, 2162}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1846}}";
+ sepNavSelRange = "{548, 0}";
+ sepNavVisRange = "{0, 1959}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* StereoFX.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 936}}";
- sepNavSelRange = "{2618, 0}";
- sepNavVisRange = "{0, 2405}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 910}}";
+ sepNavSelRange = "{2498, 0}";
+ sepNavVisRange = "{347, 2231}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
diff --git a/plugins/MacVST/StereoFX/StereoFX.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/StereoFX/StereoFX.xcodeproj/christopherjohnson.perspectivev3
index 2a5be24..1e8fb00 100755
--- a/plugins/MacVST/StereoFX/StereoFX.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/StereoFX/StereoFX.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -298,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -321,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>19 357 810 487 0 0 1440 878 </string>
+ <string>326 318 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -360,7 +362,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>19 357 810 487 0 0 1440 878 </string>
+ <string>326 318 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -439,7 +441,7 @@
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
- <string>19 357 810 487 0 0 1440 878 </string>
+ <string>326 318 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -467,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BC5CFB52093FD050058B257</string>
+ <string>8B79408D21F60A83006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BC5CFB62093FD050058B257</string>
+ <string>8B79408E21F60A83006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BC5CFB72093FD050058B257</string>
+ <string>8B79408F21F60A83006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -624,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>546571504.84971404</real>
+ <real>569772675.65113199</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -641,11 +643,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BC5CFDD209404F00058B257</string>
- <string>/Users/christopherjohnson/Desktop/StereoFX/StereoFX.xcodeproj</string>
+ <string>8B79409021F60A83006E9731</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/StereoFX/StereoFX.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>19 357 810 487 0 0 1440 878 </string>
+ <string>326 318 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/StereoFX/source/StereoFX.cpp b/plugins/MacVST/StereoFX/source/StereoFX.cpp
index 63c23db..704cbf3 100755
--- a/plugins/MacVST/StereoFX/source/StereoFX.cpp
+++ b/plugins/MacVST/StereoFX/source/StereoFX.cpp
@@ -17,10 +17,8 @@ StereoFX::StereoFX(audioMasterCallback audioMaster) :
C = 0.0;
iirSampleA = 0.0;
iirSampleB = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
flip = false;
//this is reset: values being initialized only once. Startup values, whatever they are.
diff --git a/plugins/MacVST/StereoFX/source/StereoFX.h b/plugins/MacVST/StereoFX/source/StereoFX.h
index 6748d1e..7a36059 100755
--- a/plugins/MacVST/StereoFX/source/StereoFX.h
+++ b/plugins/MacVST/StereoFX/source/StereoFX.h
@@ -56,10 +56,8 @@ private:
double iirSampleA;
double iirSampleB;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
+ long double fpNShapeL;
+ long double fpNShapeR;
bool flip;
//default stuff
diff --git a/plugins/MacVST/StereoFX/source/StereoFXProc.cpp b/plugins/MacVST/StereoFX/source/StereoFXProc.cpp
index 49be44f..0e9de74 100755
--- a/plugins/MacVST/StereoFX/source/StereoFXProc.cpp
+++ b/plugins/MacVST/StereoFX/source/StereoFXProc.cpp
@@ -17,9 +17,6 @@ void StereoFX::processReplacing(float **inputs, float **outputs, VstInt32 sample
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
long double mid;
@@ -138,25 +135,14 @@ void StereoFX::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
- //noise shaping to 32-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- flip = !flip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -178,9 +164,6 @@ void StereoFX::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
long double mid;
@@ -299,25 +282,16 @@ void StereoFX::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleL = (mid+side)/2.0;
inputSampleR = (mid-side)/2.0;
- //noise shaping to 64-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- flip = !flip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/christopherjohnson.pbxuser
index bb7bda4..d59c2aa 100755
--- a/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* SubsOnly */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528462034;
- PBXWorkspaceStateSaveDate = 528462034;
+ PBXPerProjectTemplateStateSaveDate = 569772699;
+ PBXWorkspaceStateSaveDate = 569772699;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* SubsOnly */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/christopherjohnson.perspectivev3
index d989da0..1708702 100755
--- a/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/christopherjohnson.perspectivev3
@@ -360,18 +360,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 32}}</string>
+ <string>{{0, 0}, {603, 13}}</string>
<key>RubberWindowFrame</key>
<string>397 265 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>32pt</string>
+ <string>13pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>409pt</string>
+ <string>428pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -385,7 +385,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 382}}</string>
+ <string>{{10, 27}, {603, 401}}</string>
<key>RubberWindowFrame</key>
<string>397 265 810 487 0 0 1440 878 </string>
</dict>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7E651F7FB0E3007AB60F</string>
+ <string>8B7940AD21F60AEF006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7E661F7FB0E3007AB60F</string>
+ <string>8B7940AE21F60AEF006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7E671F7FB0E3007AB60F</string>
+ <string>8B7940AF21F60AEF006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528462051.69883603</real>
+ <real>569772783.81786597</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7E681F7FB0E3007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/SubsOnly/SubsOnly.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/project.pbxproj b/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/project.pbxproj
index 4143c63..27466c7 100755
--- a/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/SubsOnly/SubsOnly.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* SubsOnly */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "SubsOnly" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
+ 8D01CCC60486CAD60068D4B7 /* SubsOnly */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Surge/Surge.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Surge/Surge.xcodeproj/christopherjohnson.pbxuser
index ed57dee..80718cb 100755
--- a/plugins/MacVST/Surge/Surge.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Surge/Surge.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* Surge */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528463544;
- PBXWorkspaceStateSaveDate = 528463544;
+ PBXPerProjectTemplateStateSaveDate = 569772809;
+ PBXWorkspaceStateSaveDate = 569772809;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -58,17 +58,17 @@
};
2407DEB6089929BA00EB68BF /* Surge.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1690}}";
- sepNavSelRange = "{609, 0}";
- sepNavVisRange = "{0, 1883}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1807}}";
+ sepNavSelRange = "{459, 0}";
+ sepNavVisRange = "{0, 1913}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Surge.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 936}}";
- sepNavSelRange = "{2622, 0}";
- sepNavVisRange = "{354, 2279}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 910}}";
+ sepNavSelRange = "{2423, 0}";
+ sepNavVisRange = "{335, 2246}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* Surge */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/Surge/Surge.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Surge/Surge.xcodeproj/christopherjohnson.perspectivev3
index 2e5daef..149ac16 100755
--- a/plugins/MacVST/Surge/Surge.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Surge/Surge.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -386,8 +386,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
- <key>RubberWindowFrame</key>
- <string>456 253 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -441,7 +439,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 282}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>456 253 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7E841F7FB6D2007AB60F</string>
+ <string>8B7940CE21F60B33006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7E851F7FB6D2007AB60F</string>
+ <string>8B7940CF21F60B33006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7E861F7FB6D2007AB60F</string>
+ <string>8B7940D021F60B33006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528463570.73526001</real>
+ <real>569772851.163517</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7E871F7FB6D2007AB60F</string>
+ <string>8B7940D121F60B33006E9731</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Surge/Surge.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Surge/Surge.xcodeproj/project.pbxproj b/plugins/MacVST/Surge/Surge.xcodeproj/project.pbxproj
index 20bb253..f42ed0d 100755
--- a/plugins/MacVST/Surge/Surge.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/Surge/Surge.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* Surge */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Surge" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
+ 8D01CCC60486CAD60068D4B7 /* Surge */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Surge/source/Surge.cpp b/plugins/MacVST/Surge/source/Surge.cpp
index 711c0df..222fbcf 100755
--- a/plugins/MacVST/Surge/source/Surge.cpp
+++ b/plugins/MacVST/Surge/source/Surge.cpp
@@ -12,10 +12,8 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new S
Surge::Surge(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
- fpNShapeAL = 0.0;
- fpNShapeBL = 0.0;
- fpNShapeAR = 0.0;
- fpNShapeBR = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
flip = true;
chaseA = 0.0;
chaseB = 0.0;
diff --git a/plugins/MacVST/Surge/source/Surge.h b/plugins/MacVST/Surge/source/Surge.h
index 0e485c3..7f42c9f 100755
--- a/plugins/MacVST/Surge/source/Surge.h
+++ b/plugins/MacVST/Surge/source/Surge.h
@@ -53,10 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeAL;
- long double fpNShapeBL;
- long double fpNShapeAR;
- long double fpNShapeBR;
+ long double fpNShapeL;
+ long double fpNShapeR;
bool flip;
long double chaseA;
long double chaseB;
diff --git a/plugins/MacVST/Surge/source/SurgeProc.cpp b/plugins/MacVST/Surge/source/SurgeProc.cpp
index 7a72b2f..cd82bad 100755
--- a/plugins/MacVST/Surge/source/SurgeProc.cpp
+++ b/plugins/MacVST/Surge/source/SurgeProc.cpp
@@ -17,9 +17,6 @@ void Surge::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -120,27 +117,14 @@ void Surge::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
inputSampleR = drySampleR - (inputSampleR * intensity);
inputSampleR = (drySampleR * dry) + (inputSampleR * wet);
- //noise shaping to 32-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
-
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
-
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -162,9 +146,6 @@ void Surge::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -264,27 +245,16 @@ void Surge::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
inputSampleR = drySampleR - (inputSampleR * intensity);
inputSampleR = (drySampleR * dry) + (inputSampleR * wet);
- //noise shaping to 64-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
-
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
-
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/SurgeTide/SurgeTide.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/SurgeTide/SurgeTide.xcodeproj/christopherjohnson.pbxuser
index c98ccc2..4f6f5f0 100755
--- a/plugins/MacVST/SurgeTide/SurgeTide.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/SurgeTide/SurgeTide.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528463581;
- PBXWorkspaceStateSaveDate = 528463581;
+ PBXPerProjectTemplateStateSaveDate = 569772872;
+ PBXWorkspaceStateSaveDate = 569772872;
};
perUserProjectItems = {
- 8B9D70D31F7EF8CC007AB60F /* PBXTextBookmark */ = 8B9D70D31F7EF8CC007AB60F /* PBXTextBookmark */;
+ 8B7940F021F60B71006E9731 /* PBXTextBookmark */ = 8B7940F021F60B71006E9731 /* PBXTextBookmark */;
8B9D7EA31F7FB6EC007AB60F /* PBXTextBookmark */ = 8B9D7EA31F7FB6EC007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -62,23 +62,23 @@
};
2407DEB6089929BA00EB68BF /* SurgeTide.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1846}}";
- sepNavSelRange = "{4583, 0}";
- sepNavVisRange = "{0, 1913}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1859}}";
+ sepNavSelRange = "{517, 0}";
+ sepNavVisRange = "{0, 1960}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* SurgeTide.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 949}}";
- sepNavSelRange = "{2633, 0}";
- sepNavVisRange = "{377, 2268}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 923}}";
+ sepNavSelRange = "{2465, 0}";
+ sepNavVisRange = "{369, 2224}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {747, 19864}}";
+ sepNavIntBoundsRect = "{{0, 0}, {747, 19877}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
@@ -106,7 +106,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D70D31F7EF8CC007AB60F /* PBXTextBookmark */ = {
+ 8B7940F021F60B71006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
diff --git a/plugins/MacVST/SurgeTide/SurgeTide.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/SurgeTide/SurgeTide.xcodeproj/christopherjohnson.perspectivev3
index 4c96578..ad29a23 100755
--- a/plugins/MacVST/SurgeTide/SurgeTide.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/SurgeTide/SurgeTide.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7EA31F7FB6EC007AB60F</string>
+ <string>8B7940F021F60B71006E9731</string>
<key>history</key>
<array>
- <string>8B9D70D31F7EF8CC007AB60F</string>
+ <string>8B9D7EA31F7FB6EC007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>384 385 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
- <key>RubberWindowFrame</key>
- <string>384 385 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 414}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -449,7 +447,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 363}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>384 385 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7EA41F7FB6EC007AB60F</string>
+ <string>8B7940F121F60B71006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7EA51F7FB6EC007AB60F</string>
+ <string>8B7940F221F60B71006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7EA61F7FB6EC007AB60F</string>
+ <string>8B7940F321F60B71006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528463596.67712098</real>
+ <real>569772913.08327401</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7EA71F7FB6EC007AB60F</string>
+ <string>8B7940F421F60B71006E9731</string>
<string>/Users/christopherjohnson/Desktop/MacVST/SurgeTide/SurgeTide.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/SurgeTide/source/SurgeTide.cpp b/plugins/MacVST/SurgeTide/source/SurgeTide.cpp
index 8df46c0..494e886 100755
--- a/plugins/MacVST/SurgeTide/source/SurgeTide.cpp
+++ b/plugins/MacVST/SurgeTide/source/SurgeTide.cpp
@@ -15,10 +15,8 @@ SurgeTide::SurgeTide(audioMasterCallback audioMaster) :
A = 0.5;
B = 0.3;
C = 1.0;
- fpNShapeAL = 0.0;
- fpNShapeBL = 0.0;
- fpNShapeAR = 0.0;
- fpNShapeBR = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
flip = true;
chaseA = 0.0;
chaseB = 0.0;
diff --git a/plugins/MacVST/SurgeTide/source/SurgeTide.h b/plugins/MacVST/SurgeTide/source/SurgeTide.h
index 27495d7..8f8cd42 100755
--- a/plugins/MacVST/SurgeTide/source/SurgeTide.h
+++ b/plugins/MacVST/SurgeTide/source/SurgeTide.h
@@ -54,10 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeAL;
- long double fpNShapeBL;
- long double fpNShapeAR;
- long double fpNShapeBR;
+ long double fpNShapeL;
+ long double fpNShapeR;
bool flip;
long double chaseA;
long double chaseB;
diff --git a/plugins/MacVST/SurgeTide/source/SurgeTideProc.cpp b/plugins/MacVST/SurgeTide/source/SurgeTideProc.cpp
index 2fc6a1a..59a92aa 100755
--- a/plugins/MacVST/SurgeTide/source/SurgeTideProc.cpp
+++ b/plugins/MacVST/SurgeTide/source/SurgeTideProc.cpp
@@ -17,9 +17,6 @@ void SurgeTide::processReplacing(float **inputs, float **outputs, VstInt32 sampl
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -110,27 +107,14 @@ void SurgeTide::processReplacing(float **inputs, float **outputs, VstInt32 sampl
inputSampleR = drySampleR - (inputSampleR * intensity);
inputSampleR = (drySampleR * dry) + (inputSampleR * wet);
- //noise shaping to 32-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
-
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
-
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -152,9 +136,6 @@ void SurgeTide::processDoubleReplacing(double **inputs, double **outputs, VstInt
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -245,27 +226,16 @@ void SurgeTide::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleR = drySampleR - (inputSampleR * intensity);
inputSampleR = (drySampleR * dry) + (inputSampleR * wet);
- //noise shaping to 64-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
-
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
-
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Swell/Swell.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Swell/Swell.xcodeproj/christopherjohnson.pbxuser
index dcb6a41..6dbf178 100755
--- a/plugins/MacVST/Swell/Swell.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Swell/Swell.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* Swell */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 532491124;
- PBXWorkspaceStateSaveDate = 532491124;
+ PBXPerProjectTemplateStateSaveDate = 569772934;
+ PBXWorkspaceStateSaveDate = 569772934;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* Swell */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/Swell/Swell.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Swell/Swell.xcodeproj/christopherjohnson.perspectivev3
index c2e2adb..4bb2aa5 100755
--- a/plugins/MacVST/Swell/Swell.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Swell/Swell.xcodeproj/christopherjohnson.perspectivev3
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BCC7CDC1FBD2FDD00982BD6</string>
+ <string>8B79410721F60B8F006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BCC7CDD1FBD2FDD00982BD6</string>
+ <string>8B79410821F60B8F006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BCC7CDE1FBD2FDD00982BD6</string>
+ <string>8B79410921F60B8F006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>532492253.86718899</real>
+ <real>569772943.08427894</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/Swell/Swell.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/Swell/Swell.xcodeproj</string>
</array>
<key>WindowString</key>
<string>21 352 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/Swell/Swell.xcodeproj/project.pbxproj b/plugins/MacVST/Swell/Swell.xcodeproj/project.pbxproj
index 30d06b4..eb22bb1 100755
--- a/plugins/MacVST/Swell/Swell.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/Swell/Swell.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* Swell */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Swell" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* Swell */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/Swell/source/Swell.cpp b/plugins/MacVST/Swell/source/Swell.cpp
index 30518d8..e197cfb 100755
--- a/plugins/MacVST/Swell/source/Swell.cpp
+++ b/plugins/MacVST/Swell/source/Swell.cpp
@@ -21,11 +21,8 @@ Swell::Swell(audioMasterCallback audioMaster) :
louderL = false;
louderR = false;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Swell/source/Swell.h b/plugins/MacVST/Swell/source/Swell.h
index c383df2..7c108b7 100755
--- a/plugins/MacVST/Swell/source/Swell.h
+++ b/plugins/MacVST/Swell/source/Swell.h
@@ -54,11 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
diff --git a/plugins/MacVST/Swell/source/SwellProc.cpp b/plugins/MacVST/Swell/source/SwellProc.cpp
index 28c0aba..3ab1e9b 100755
--- a/plugins/MacVST/Swell/source/SwellProc.cpp
+++ b/plugins/MacVST/Swell/source/SwellProc.cpp
@@ -17,9 +17,6 @@ void Swell::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double thresholdOn = pow(A,2) * B;
double speedOn = (pow(B,2)*0.001)/overallscale;
@@ -97,25 +94,14 @@ void Swell::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -137,9 +123,6 @@ void Swell::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double thresholdOn = pow(A,2) * B;
double speedOn = (pow(B,2)*0.001)/overallscale;
@@ -217,25 +200,16 @@ void Swell::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/christopherjohnson.pbxuser
index be05dd0..be05dd0 100644..100755
--- a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/christopherjohnson.pbxuser
diff --git a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/christopherjohnson.perspectivev3
index 79249f6..79249f6 100644..100755
--- a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/christopherjohnson.perspectivev3
diff --git a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index a80c038..a80c038 100644..100755
--- a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
index 5c38f94..5c38f94 100644..100755
--- a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
index 314de0f..314de0f 100644..100755
--- a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/spiadmin.mode1v3
index c572326..c572326 100644..100755
--- a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/spiadmin.mode1v3
+++ b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/spiadmin.mode1v3
diff --git a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/spiadmin.pbxuser
index df94780..df94780 100644..100755
--- a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/spiadmin.pbxuser
+++ b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/spiadmin.pbxuser
diff --git a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
index 8ee693f..8ee693f 100644..100755
--- a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
+++ b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
diff --git a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
index 5bccbcb..5bccbcb 100644..100755
--- a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
index a7bdd62..a7bdd62 100644..100755
--- a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
index 0df2de4..0df2de4 100644..100755
--- a/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
+++ b/plugins/MacVST/TPDFDither/TPDFDither.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
diff --git a/plugins/MacVST/TapeDelay/TapeDelay.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/TapeDelay/TapeDelay.xcodeproj/christopherjohnson.pbxuser
index c5631ab..c3bc4aa 100755
--- a/plugins/MacVST/TapeDelay/TapeDelay.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/TapeDelay/TapeDelay.xcodeproj/christopherjohnson.pbxuser
@@ -51,11 +51,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 566515719;
- PBXWorkspaceStateSaveDate = 566515719;
+ PBXPerProjectTemplateStateSaveDate = 569772961;
+ PBXWorkspaceStateSaveDate = 569772961;
};
perUserProjectItems = {
- 8BBB336F21C45BB700825986 /* PBXTextBookmark */ = 8BBB336F21C45BB700825986 /* PBXTextBookmark */;
+ 8B79412621F60BA9006E9731 /* PBXTextBookmark */ = 8B79412621F60BA9006E9731 /* PBXTextBookmark */;
8BBB337021C45BB700825986 /* PBXTextBookmark */ = 8BBB337021C45BB700825986 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -64,9 +64,9 @@
};
2407DEB6089929BA00EB68BF /* TapeDelay.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {789, 2093}}";
+ sepNavIntBoundsRect = "{{0, 0}, {789, 2054}}";
sepNavSelRange = "{5754, 0}";
- sepNavVisRange = "{4829, 428}";
+ sepNavVisRange = "{4902, 355}";
sepNavWindowFrame = "{{561, 47}, {895, 831}}";
};
};
@@ -108,15 +108,15 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8BBB336F21C45BB700825986 /* PBXTextBookmark */ = {
+ 8B79412621F60BA9006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* TapeDelay.cpp */;
name = "TapeDelay.cpp: 147";
rLen = 0;
rLoc = 5754;
rType = 0;
- vrLen = 428;
- vrLoc = 4829;
+ vrLen = 355;
+ vrLoc = 4902;
};
8BBB337021C45BB700825986 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
diff --git a/plugins/MacVST/TapeDelay/TapeDelay.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/TapeDelay/TapeDelay.xcodeproj/christopherjohnson.perspectivev3
index 65a91fc..98c0fc3 100755
--- a/plugins/MacVST/TapeDelay/TapeDelay.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/TapeDelay/TapeDelay.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>670 293 810 487 0 0 1440 878 </string>
+ <string>574 298 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BBB337021C45BB700825986</string>
+ <string>8B79412621F60BA9006E9731</string>
<key>history</key>
<array>
- <string>8BBB336F21C45BB700825986</string>
+ <string>8BBB337021C45BB700825986</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 102}}</string>
+ <string>{{0, 0}, {603, 86}}</string>
<key>RubberWindowFrame</key>
- <string>670 293 810 487 0 0 1440 878 </string>
+ <string>574 298 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>102pt</string>
+ <string>86pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>339pt</string>
+ <string>355pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,9 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 312}}</string>
+ <string>{{10, 27}, {603, 328}}</string>
<key>RubberWindowFrame</key>
- <string>670 293 810 487 0 0 1440 878 </string>
+ <string>574 298 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBB337121C45BB700825986</string>
+ <string>8B79412721F60BA9006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBB337221C45BB700825986</string>
+ <string>8B79412821F60BA9006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBB337321C45BB700825986</string>
+ <string>8B79412921F60BA9006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -654,7 +654,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>566516663.29121006</real>
+ <real>569772969.46289504</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -674,7 +674,7 @@
<string>/Users/christopherjohnson/Desktop/MacVST/TapeDelay/TapeDelay.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>670 293 810 487 0 0 1440 878 </string>
+ <string>574 298 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/TapeDelay/source/TapeDelayProc.cpp b/plugins/MacVST/TapeDelay/source/TapeDelayProc.cpp
index 43fa743..e2f1ade 100755
--- a/plugins/MacVST/TapeDelay/source/TapeDelayProc.cpp
+++ b/plugins/MacVST/TapeDelay/source/TapeDelayProc.cpp
@@ -156,18 +156,14 @@ void TapeDelay::processReplacing(float **inputs, float **outputs, VstInt32 sampl
inputSampleL = (inputSampleL * dry) + (dL[delay] * wet);
inputSampleR = (inputSampleR * dry) + (dR[delay] * wet);
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -177,12 +173,6 @@ void TapeDelay::processReplacing(float **inputs, float **outputs, VstInt32 sampl
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void TapeDelay::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -333,18 +323,16 @@ void TapeDelay::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleL = (inputSampleL * dry) + (dL[delay] * wet);
inputSampleR = (inputSampleR * dry) + (dR[delay] * wet);
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -354,10 +342,4 @@ void TapeDelay::processDoubleReplacing(double **inputs, double **outputs, VstInt
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/TapeDither/TapeDither.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/TapeDither/TapeDither.xcodeproj/christopherjohnson.pbxuser
index fe5becd..8a6d7a7 100755
--- a/plugins/MacVST/TapeDither/TapeDither.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/TapeDither/TapeDither.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* TapeDither */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528463605;
- PBXWorkspaceStateSaveDate = 528463605;
+ PBXPerProjectTemplateStateSaveDate = 557693738;
+ PBXWorkspaceStateSaveDate = 557693738;
+ };
+ perUserProjectItems = {
+ 8B913F7F213DBBCF00BA6EEC /* PBXBookmark */ = 8B913F7F213DBBCF00BA6EEC /* PBXBookmark */;
+ 8B913F80213DBBCF00BA6EEC /* PBXTextBookmark */ = 8B913F80213DBBCF00BA6EEC /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -82,10 +86,10 @@
};
24D8286F09A914000093AEF8 /* TapeDitherProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 3068}}";
+ sepNavIntBoundsRect = "{{0, 0}, {691, 2405}}";
sepNavSelRange = "{634, 0}";
- sepNavVisRange = "{355, 2231}";
- sepNavWindowFrame = "{{405, 47}, {895, 831}}";
+ sepNavVisRange = "{0, 0}";
+ sepNavWindowFrame = "{{16, 47}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
@@ -102,7 +106,21 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8B913F7F213DBBCF00BA6EEC /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* TapeDitherProc.cpp */;
+ };
+ 8B913F80213DBBCF00BA6EEC /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* TapeDitherProc.cpp */;
+ name = "TapeDitherProc.cpp: 26";
+ rLen = 0;
+ rLoc = 634;
+ rType = 0;
+ vrLen = 0;
+ vrLoc = 0;
+ };
+ 8D01CCC60486CAD60068D4B7 /* TapeDither */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/TapeDither/TapeDither.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/TapeDither/TapeDither.xcodeproj/christopherjohnson.perspectivev3
index 0786862..c000ce2 100755
--- a/plugins/MacVST/TapeDither/TapeDither.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/TapeDither/TapeDither.xcodeproj/christopherjohnson.perspectivev3
@@ -339,7 +339,7 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237581D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Gain.h</string>
+ <string>TapeDitherProc.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -347,7 +347,15 @@
<key>PBXProjectModuleGUID</key>
<string>8B0237591D42B1C400E1E8C8</string>
<key>PBXProjectModuleLabel</key>
- <string>Gain.h</string>
+ <string>TapeDitherProc.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>8B913F80213DBBCF00BA6EEC</string>
+ <key>history</key>
+ <array>
+ <string>8B913F7F213DBBCF00BA6EEC</string>
+ </array>
</dict>
<key>SplitCount</key>
<string>1</string>
@@ -360,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 32}}</string>
+ <string>{{0, 0}, {603, 13}}</string>
<key>RubberWindowFrame</key>
<string>379 285 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>32pt</string>
+ <string>13pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>409pt</string>
+ <string>428pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -385,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 382}}</string>
+ <string>{{10, 27}, {603, 401}}</string>
<key>RubberWindowFrame</key>
<string>379 285 810 487 0 0 1440 878 </string>
</dict>
@@ -469,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7EC31F7FB712007AB60F</string>
+ <string>8B913F81213DBBCF00BA6EEC</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7EC41F7FB712007AB60F</string>
+ <string>8B913F82213DBBCF00BA6EEC</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7EC51F7FB712007AB60F</string>
+ <string>8B913F83213DBBCF00BA6EEC</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528463634.41372299</real>
+ <real>557693903.11264896</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +651,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7EC61F7FB712007AB60F</string>
+ <string>8B913F84213DBBCF00BA6EEC</string>
<string>/Users/christopherjohnson/Desktop/MacVST/TapeDither/TapeDither.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/TapeDither/TapeDither.xcodeproj/project.pbxproj b/plugins/MacVST/TapeDither/TapeDither.xcodeproj/project.pbxproj
index dafefdd..85188b9 100755
--- a/plugins/MacVST/TapeDither/TapeDither.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/TapeDither/TapeDither.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* TapeDither */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "TapeDither" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
+ 8D01CCC60486CAD60068D4B7 /* TapeDither */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/TapeDust/TapeDust.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/TapeDust/TapeDust.xcodeproj/christopherjohnson.pbxuser
index 3c2546d..db5f0e9 100755
--- a/plugins/MacVST/TapeDust/TapeDust.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/TapeDust/TapeDust.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* TapeDust */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528463643;
- PBXWorkspaceStateSaveDate = 528463643;
+ PBXPerProjectTemplateStateSaveDate = 569772990;
+ PBXWorkspaceStateSaveDate = 569772990;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -58,18 +58,18 @@
};
2407DEB6089929BA00EB68BF /* TapeDust.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1807}}";
- sepNavSelRange = "{4129, 0}";
- sepNavVisRange = "{0, 1910}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1781}}";
+ sepNavSelRange = "{641, 0}";
+ sepNavVisRange = "{0, 1873}";
sepNavWindowFrame = "{{527, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* TapeDust.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 832}}";
- sepNavSelRange = "{421, 0}";
- sepNavVisRange = "{0, 2396}";
- sepNavWindowFrame = "{{513, 34}, {895, 831}}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 936}}";
+ sepNavSelRange = "{2457, 0}";
+ sepNavVisRange = "{365, 2218}";
+ sepNavWindowFrame = "{{513, 39}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
@@ -82,9 +82,9 @@
};
24D8286F09A914000093AEF8 /* TapeDustProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 3653}}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 3484}}";
sepNavSelRange = "{5633, 1892}";
- sepNavVisRange = "{315, 2084}";
+ sepNavVisRange = "{1840, 1844}";
sepNavWindowFrame = "{{296, 47}, {895, 831}}";
};
};
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* TapeDust */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/TapeDust/TapeDust.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/TapeDust/TapeDust.xcodeproj/christopherjohnson.perspectivev3
index 2985e5f..908494e 100755
--- a/plugins/MacVST/TapeDust/TapeDust.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/TapeDust/TapeDust.xcodeproj/christopherjohnson.perspectivev3
@@ -361,18 +361,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {531, 202}}</string>
+ <string>{{0, 0}, {531, 188}}</string>
<key>RubberWindowFrame</key>
<string>280 175 841 654 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>202pt</string>
+ <string>188pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>406pt</string>
+ <string>420pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -386,9 +386,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {531, 379}}</string>
- <key>RubberWindowFrame</key>
- <string>280 175 841 654 0 0 1440 878 </string>
+ <string>{{10, 27}, {531, 393}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -442,7 +440,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {531, 339}}</string>
+ <string>{{10, 27}, {531, 393}}</string>
+ <key>RubberWindowFrame</key>
+ <string>280 175 841 654 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -470,11 +470,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7EE21F7FB727007AB60F</string>
+ <string>8B79415321F60BEB006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7EE31F7FB727007AB60F</string>
+ <string>8B79415421F60BEB006E9731</string>
<string>8BD7274A1D46E5A5000176F0</string>
- <string>8B9D7EE41F7FB727007AB60F</string>
+ <string>8B79415521F60BEB006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -647,7 +647,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528463655.50013697</real>
+ <real>569773035.93911803</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -664,7 +664,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7EE51F7FB727007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/TapeDust/TapeDust.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/TapeDust/TapeDust.xcodeproj/project.pbxproj b/plugins/MacVST/TapeDust/TapeDust.xcodeproj/project.pbxproj
index 2a33807..5d00f6e 100755
--- a/plugins/MacVST/TapeDust/TapeDust.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/TapeDust/TapeDust.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
+ 8D01CCC60486CAD60068D4B7 /* TapeDust */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "TapeDust" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
+ 8D01CCC60486CAD60068D4B7 /* TapeDust */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/TapeDust/source/TapeDust.cpp b/plugins/MacVST/TapeDust/source/TapeDust.cpp
index 9638c14..0ce16e0 100755
--- a/plugins/MacVST/TapeDust/source/TapeDust.cpp
+++ b/plugins/MacVST/TapeDust/source/TapeDust.cpp
@@ -22,10 +22,8 @@ TapeDust::TapeDust(audioMasterCallback audioMaster) :
fR[count] = 0.0;
}
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
fpFlip = true;
//this is reset: values being initialized only once. Startup values, whatever they are.
diff --git a/plugins/MacVST/TapeDust/source/TapeDust.h b/plugins/MacVST/TapeDust/source/TapeDust.h
index 7b3a7fd..facbf40 100755
--- a/plugins/MacVST/TapeDust/source/TapeDust.h
+++ b/plugins/MacVST/TapeDust/source/TapeDust.h
@@ -53,10 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
+ long double fpNShapeL;
+ long double fpNShapeR;
bool fpFlip;
//default stuff
diff --git a/plugins/MacVST/TapeDust/source/TapeDustProc.cpp b/plugins/MacVST/TapeDust/source/TapeDustProc.cpp
index 3d6588d..429a366 100755
--- a/plugins/MacVST/TapeDust/source/TapeDustProc.cpp
+++ b/plugins/MacVST/TapeDust/source/TapeDustProc.cpp
@@ -13,9 +13,6 @@ void TapeDust::processReplacing(float **inputs, float **outputs, VstInt32 sample
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -93,6 +90,7 @@ void TapeDust::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleL = -inputSampleL;
inputSampleR = -inputSampleR;
}
+ fpFlip = !fpFlip;
for(int count = 0; count < 9; count++) {
if (gainL > 1.0) {
@@ -120,25 +118,14 @@ void TapeDust::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -156,9 +143,6 @@ void TapeDust::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -236,6 +220,7 @@ void TapeDust::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleL = -inputSampleL;
inputSampleR = -inputSampleR;
}
+ fpFlip = !fpFlip;
for(int count = 0; count < 9; count++) {
if (gainL > 1.0) {
@@ -263,25 +248,16 @@ void TapeDust::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/TapeFat/TapeFat.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/TapeFat/TapeFat.xcodeproj/christopherjohnson.pbxuser
index 712e902..6e56b6e 100755
--- a/plugins/MacVST/TapeFat/TapeFat.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/TapeFat/TapeFat.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* TapeFat */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 566515698;
- PBXWorkspaceStateSaveDate = 566515698;
+ PBXPerProjectTemplateStateSaveDate = 569773058;
+ PBXWorkspaceStateSaveDate = 569773058;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* TapeFat */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/TapeFat/TapeFat.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/TapeFat/TapeFat.xcodeproj/christopherjohnson.perspectivev3
index 9b9a82f..2a91836 100755
--- a/plugins/MacVST/TapeFat/TapeFat.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/TapeFat/TapeFat.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -384,6 +386,8 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>60 334 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -438,8 +442,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
- <key>RubberWindowFrame</key>
- <string>60 334 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -467,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBB339A21C45C7500825986</string>
+ <string>8B79416821F60C09006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBB339B21C45C7500825986</string>
+ <string>8B79416921F60C09006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBB339C21C45C7500825986</string>
+ <string>8B79416A21F60C09006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -624,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>566516853.28770995</real>
+ <real>569773065.92286897</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -641,8 +643,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8BBB339D21C45C7500825986</string>
- <string>/Users/christopherjohnson/Desktop/TapeFat/TapeFat.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/TapeFat/TapeFat.xcodeproj</string>
</array>
<key>WindowString</key>
<string>60 334 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/TapeFat/TapeFat.xcodeproj/project.pbxproj b/plugins/MacVST/TapeFat/TapeFat.xcodeproj/project.pbxproj
index ec6dc2a..4d47968 100755
--- a/plugins/MacVST/TapeFat/TapeFat.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/TapeFat/TapeFat.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* TapeFat */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "TapeFat" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* TapeFat */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/TapeFat/source/TapeFatProc.cpp b/plugins/MacVST/TapeFat/source/TapeFatProc.cpp
index 3f81d20..8eb0e98 100755
--- a/plugins/MacVST/TapeFat/source/TapeFatProc.cpp
+++ b/plugins/MacVST/TapeFat/source/TapeFatProc.cpp
@@ -119,18 +119,14 @@ void TapeFat::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
gcount--;
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -140,12 +136,6 @@ void TapeFat::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void TapeFat::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -260,18 +250,16 @@ void TapeFat::processDoubleReplacing(double **inputs, double **outputs, VstInt32
gcount--;
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -281,10 +269,4 @@ void TapeFat::processDoubleReplacing(double **inputs, double **outputs, VstInt32
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/Thunder/Thunder.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Thunder/Thunder.xcodeproj/christopherjohnson.pbxuser
index 79ebcf3..15ab8ae 100755
--- a/plugins/MacVST/Thunder/Thunder.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Thunder/Thunder.xcodeproj/christopherjohnson.pbxuser
@@ -49,13 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528463664;
- PBXWorkspaceStateSaveDate = 528463664;
+ PBXPerProjectTemplateStateSaveDate = 569773085;
+ PBXWorkspaceStateSaveDate = 569773085;
};
perUserProjectItems = {
- 8B9D712F1F7EF94F007AB60F /* PBXTextBookmark */ = 8B9D712F1F7EF94F007AB60F /* PBXTextBookmark */;
+ 8B79419321F60C4C006E9731 /* PBXTextBookmark */ = 8B79419321F60C4C006E9731 /* PBXTextBookmark */;
8B9D7F011F7FB742007AB60F /* PBXTextBookmark */ = 8B9D7F011F7FB742007AB60F /* PBXTextBookmark */;
- 8BFE4BF31D92E5D600BBC6AC /* PBXTextBookmark */ = 8BFE4BF31D92E5D600BBC6AC /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -63,17 +62,17 @@
};
2407DEB6089929BA00EB68BF /* Thunder.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {848, 1898}}";
- sepNavSelRange = "{639, 0}";
- sepNavVisRange = "{2907, 2125}";
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1937}}";
+ sepNavSelRange = "{494, 0}";
+ sepNavVisRange = "{0, 1878}";
sepNavWindowFrame = "{{542, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Thunder.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {866, 1092}}";
- sepNavSelRange = "{2556, 0}";
- sepNavVisRange = "{609, 2247}";
+ sepNavIntBoundsRect = "{{0, 0}, {866, 1066}}";
+ sepNavSelRange = "{2752, 0}";
+ sepNavVisRange = "{591, 2213}";
sepNavWindowFrame = "{{545, 47}, {895, 831}}";
};
};
@@ -87,7 +86,7 @@
};
24D8286F09A914000093AEF8 /* ThunderProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 6630}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 6240}}";
sepNavSelRange = "{1105, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{545, 47}, {895, 831}}";
@@ -107,10 +106,10 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D712F1F7EF94F007AB60F /* PBXTextBookmark */ = {
+ 8B79419321F60C4C006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ThunderProc.cpp */;
- name = "ThunderProc.cpp: 44";
+ name = "ThunderProc.cpp: 43";
rLen = 0;
rLoc = 1105;
rType = 0;
@@ -127,16 +126,6 @@
vrLen = 0;
vrLoc = 0;
};
- 8BFE4BF31D92E5D600BBC6AC /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 245463B80991757100464AD3 /* Thunder.h */;
- name = "Thunder.h: 1";
- rLen = 0;
- rLoc = 0;
- rType = 0;
- vrLen = 101;
- vrLoc = 0;
- };
8D01CCC60486CAD60068D4B7 /* Thunder */ = {
activeExec = 0;
};
diff --git a/plugins/MacVST/Thunder/Thunder.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Thunder/Thunder.xcodeproj/christopherjohnson.perspectivev3
index 72d0e9f..b395b32 100755
--- a/plugins/MacVST/Thunder/Thunder.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Thunder/Thunder.xcodeproj/christopherjohnson.perspectivev3
@@ -300,7 +300,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>5</integer>
<integer>4</integer>
<integer>0</integer>
</array>
@@ -351,11 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7F011F7FB742007AB60F</string>
+ <string>8B79419321F60C4C006E9731</string>
<key>history</key>
<array>
- <string>8BFE4BF31D92E5D600BBC6AC</string>
- <string>8B9D712F1F7EF94F007AB60F</string>
+ <string>8B9D7F011F7FB742007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>459 303 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,9 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
- <key>RubberWindowFrame</key>
- <string>459 303 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 414}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -450,7 +447,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 345}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
+ <key>RubberWindowFrame</key>
+ <string>459 303 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -478,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7F021F7FB742007AB60F</string>
+ <string>8B79419421F60C4C006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7F031F7FB742007AB60F</string>
+ <string>8B79419521F60C4C006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7F041F7FB742007AB60F</string>
+ <string>8B79419621F60C4C006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528463682.24477601</real>
+ <real>569773132.16742396</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7F051F7FB742007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Thunder/Thunder.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Thunder/source/Thunder.cpp b/plugins/MacVST/Thunder/source/Thunder.cpp
index 015eabd..7bc8226 100755
--- a/plugins/MacVST/Thunder/source/Thunder.cpp
+++ b/plugins/MacVST/Thunder/source/Thunder.cpp
@@ -15,10 +15,8 @@ Thunder::Thunder(audioMasterCallback audioMaster) :
A = 0.0;
B = 1.0;
- fpNShapeAL = 0.0;
- fpNShapeBL = 0.0;
- fpNShapeAR = 0.0;
- fpNShapeBR = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
muSpeedA = 10000;
muSpeedB = 10000;
muCoefficientA = 1;
diff --git a/plugins/MacVST/Thunder/source/Thunder.h b/plugins/MacVST/Thunder/source/Thunder.h
index 1ef1d03..9e49054 100755
--- a/plugins/MacVST/Thunder/source/Thunder.h
+++ b/plugins/MacVST/Thunder/source/Thunder.h
@@ -69,10 +69,8 @@ private:
double iirSampleAM;
double iirSampleBM;
double iirSampleCM;
- long double fpNShapeAL;
- long double fpNShapeBL;
- long double fpNShapeAR;
- long double fpNShapeBR;
+ long double fpNShapeL;
+ long double fpNShapeR;
bool flip;
float A;
diff --git a/plugins/MacVST/Thunder/source/ThunderProc.cpp b/plugins/MacVST/Thunder/source/ThunderProc.cpp
index bd401d4..2cf454d 100755
--- a/plugins/MacVST/Thunder/source/ThunderProc.cpp
+++ b/plugins/MacVST/Thunder/source/ThunderProc.cpp
@@ -40,9 +40,6 @@ void Thunder::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
double resultML;
double resultMR;
- float fpTemp;
- double fpOld = 0.618033988749894848204586; //golden ratio!
- double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -225,27 +222,14 @@ void Thunder::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
inputSampleR *= outputGain;
}
- //noise shaping to 32-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
-
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
-
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
@@ -291,9 +275,6 @@ void Thunder::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double resultML;
double resultMR;
- double fpTemp;
- double fpOld = 0.618033988749894848204586; //golden ratio!
- double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -476,27 +457,16 @@ void Thunder::processDoubleReplacing(double **inputs, double **outputs, VstInt32
inputSampleR *= outputGain;
}
- //noise shaping to 32-bit floating point
- if (flip) {
- fpTemp = inputSampleL;
- fpNShapeAL = (fpNShapeAL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeAL;
-
- fpTemp = inputSampleR;
- fpNShapeAR = (fpNShapeAR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeAR;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeBL = (fpNShapeBL*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeBL;
-
- fpTemp = inputSampleR;
- fpNShapeBR = (fpNShapeBR*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeBR;
- }
- flip = !flip;
- //end noise shaping on 32 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
diff --git a/plugins/MacVST/ToTape5/ToTape5.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ToTape5/ToTape5.xcodeproj/christopherjohnson.pbxuser
index 6d067c0..6f55ad4 100755
--- a/plugins/MacVST/ToTape5/ToTape5.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ToTape5/ToTape5.xcodeproj/christopherjohnson.pbxuser
@@ -49,15 +49,15 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528463719;
- PBXWorkspaceStateSaveDate = 528463719;
+ PBXPerProjectTemplateStateSaveDate = 569773171;
+ PBXWorkspaceStateSaveDate = 569773171;
};
perUserProjectItems = {
8B1A33851F16D336004DE6C5 /* PBXTextBookmark */ = 8B1A33851F16D336004DE6C5 /* PBXTextBookmark */;
8B1A33A71F16D5B5004DE6C5 /* PBXTextBookmark */ = 8B1A33A71F16D5B5004DE6C5 /* PBXTextBookmark */;
8B4846EC1F6D3E64007BD0D0 /* PBXTextBookmark */ = 8B4846EC1F6D3E64007BD0D0 /* PBXTextBookmark */;
- 8B9D716F1F7EFA45007AB60F /* PBXTextBookmark */ = 8B9D716F1F7EFA45007AB60F /* PBXTextBookmark */;
- 8B9D7F411F7FB77C007AB60F /* PBXTextBookmark */ = 8B9D7F411F7FB77C007AB60F /* PBXTextBookmark */;
+ 8B7941D521F60C99006E9731 /* PBXTextBookmark */ = 8B7941D521F60C99006E9731 /* PBXTextBookmark */;
+ 8B7941D921F60CC1006E9731 /* PBXTextBookmark */ = 8B7941D921F60CC1006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -89,9 +89,9 @@
};
24D8286F09A914000093AEF8 /* ToTape5Proc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {621, 10062}}";
- sepNavSelRange = "{39068, 0}";
- sepNavVisRange = "{191, 28}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 9685}}";
+ sepNavSelRange = "{584, 0}";
+ sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{400, 39}, {1005, 839}}";
};
};
@@ -146,25 +146,25 @@
vrLen = 135;
vrLoc = 3969;
};
- 8B9D716F1F7EFA45007AB60F /* PBXTextBookmark */ = {
+ 8B7941D521F60C99006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ToTape5Proc.cpp */;
- name = "ToTape5Proc.cpp: 737";
+ name = "ToTape5Proc.cpp: 20";
rLen = 0;
- rLoc = 39068;
+ rLoc = 584;
rType = 0;
- vrLen = 48;
- vrLoc = 171;
+ vrLen = 0;
+ vrLoc = 0;
};
- 8B9D7F411F7FB77C007AB60F /* PBXTextBookmark */ = {
+ 8B7941D921F60CC1006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ToTape5Proc.cpp */;
- name = "ToTape5Proc.cpp: 738";
+ name = "ToTape5Proc.cpp: 21";
rLen = 0;
- rLoc = 39068;
+ rLoc = 584;
rType = 0;
- vrLen = 28;
- vrLoc = 191;
+ vrLen = 0;
+ vrLoc = 0;
};
8D01CCC60486CAD60068D4B7 /* ToTape5 */ = {
activeExec = 0;
diff --git a/plugins/MacVST/ToTape5/ToTape5.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ToTape5/ToTape5.xcodeproj/christopherjohnson.perspectivev3
index 6c0395d..9b9bafa 100755
--- a/plugins/MacVST/ToTape5/ToTape5.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ToTape5/ToTape5.xcodeproj/christopherjohnson.perspectivev3
@@ -256,8 +256,6 @@
<key>Layout</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -351,13 +349,13 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7F411F7FB77C007AB60F</string>
+ <string>8B7941D921F60CC1006E9731</string>
<key>history</key>
<array>
<string>8B1A33851F16D336004DE6C5</string>
<string>8B1A33A71F16D5B5004DE6C5</string>
<string>8B4846EC1F6D3E64007BD0D0</string>
- <string>8B9D716F1F7EFA45007AB60F</string>
+ <string>8B7941D521F60C99006E9731</string>
</array>
</dict>
<key>SplitCount</key>
@@ -371,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 51}}</string>
+ <string>{{0, 0}, {603, 32}}</string>
<key>RubberWindowFrame</key>
<string>575 295 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>51pt</string>
+ <string>32pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>390pt</string>
+ <string>409pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -396,9 +394,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 363}}</string>
- <key>RubberWindowFrame</key>
- <string>575 295 810 487 0 0 1440 878 </string>
+ <string>{{10, 27}, {603, 382}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -453,6 +449,8 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 382}}</string>
+ <key>RubberWindowFrame</key>
+ <string>575 295 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -480,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7F421F7FB77C007AB60F</string>
+ <string>8B7941DA21F60CC1006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7F431F7FB77C007AB60F</string>
+ <string>8B7941DB21F60CC1006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7F441F7FB77C007AB60F</string>
+ <string>8B7941DC21F60CC1006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -637,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528463740.98537701</real>
+ <real>569773249.12750697</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -654,7 +652,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7F451F7FB77C007AB60F</string>
+ <string>8B7941DD21F60CC1006E9731</string>
<string>/Users/christopherjohnson/Desktop/MacVST/ToTape5/ToTape5.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/ToTape5/source/ToTape5.cpp b/plugins/MacVST/ToTape5/source/ToTape5.cpp
index 01f61cb..6136aaf 100755
--- a/plugins/MacVST/ToTape5/source/ToTape5.cpp
+++ b/plugins/MacVST/ToTape5/source/ToTape5.cpp
@@ -98,11 +98,8 @@ ToTape5::ToTape5(audioMasterCallback audioMaster) :
hcount = 0;
flip = 0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/ToTape5/source/ToTape5.h b/plugins/MacVST/ToTape5/source/ToTape5.h
index ac26df5..d049014 100755
--- a/plugins/MacVST/ToTape5/source/ToTape5.h
+++ b/plugins/MacVST/ToTape5/source/ToTape5.h
@@ -140,11 +140,8 @@ private:
double iirSampleZR;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/ToTape5/source/ToTape5Proc.cpp b/plugins/MacVST/ToTape5/source/ToTape5Proc.cpp
index 4d2d5c7..5824f80 100755
--- a/plugins/MacVST/ToTape5/source/ToTape5Proc.cpp
+++ b/plugins/MacVST/ToTape5/source/ToTape5Proc.cpp
@@ -17,7 +17,7 @@ void ToTape5::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
-
+ long double fpOld = 0.618033988749894848204586; //golden ratio!
double inputgain = pow(A+1.0,3);
double outputgain = E;
double wet = F;
@@ -63,9 +63,6 @@ void ToTape5::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
double tempSampleR;
double drySampleR;
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -358,25 +355,14 @@ void ToTape5::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -398,7 +384,7 @@ void ToTape5::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
-
+ long double fpOld = 0.618033988749894848204586; //golden ratio!
double inputgain = pow(A+1.0,3);
double outputgain = E;
double wet = F;
@@ -443,10 +429,6 @@ void ToTape5::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double bridgerectifierR;
double tempSampleR;
double drySampleR;
-
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -738,25 +720,16 @@ void ToTape5::processDoubleReplacing(double **inputs, double **outputs, VstInt32
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/ToVinyl4/ToVinyl4.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ToVinyl4/ToVinyl4.xcodeproj/christopherjohnson.pbxuser
index 23a4119..7ffc1fc 100755
--- a/plugins/MacVST/ToVinyl4/ToVinyl4.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ToVinyl4/ToVinyl4.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 537055041;
- PBXWorkspaceStateSaveDate = 537055041;
+ PBXPerProjectTemplateStateSaveDate = 569773266;
+ PBXWorkspaceStateSaveDate = 569773266;
};
perUserProjectItems = {
- 8B4D27EC2002CE340051360A /* PBXTextBookmark */ = 8B4D27EC2002CE340051360A /* PBXTextBookmark */;
8B7673412002CFD90068FDCE /* PBXTextBookmark */ = 8B7673412002CFD90068FDCE /* PBXTextBookmark */;
+ 8B7941F021F60CDA006E9731 /* PBXTextBookmark */ = 8B7941F021F60CDA006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -78,9 +78,9 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19851}}";
+ sepNavIntBoundsRect = "{{0, 0}, {838, 19864}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10579, 157}";
+ sepNavVisRange = "{10613, 123}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
@@ -106,25 +106,25 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B4D27EC2002CE340051360A /* PBXTextBookmark */ = {
+ 8B7673412002CFD90068FDCE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 280;
- vrLoc = 10459;
+ vrLen = 157;
+ vrLoc = 10579;
};
- 8B7673412002CFD90068FDCE /* PBXTextBookmark */ = {
+ 8B7941F021F60CDA006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 157;
- vrLoc = 10579;
+ vrLen = 123;
+ vrLoc = 10613;
};
8D01CCC60486CAD60068D4B7 /* ToVinyl4 */ = {
activeExec = 0;
diff --git a/plugins/MacVST/ToVinyl4/ToVinyl4.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ToVinyl4/ToVinyl4.xcodeproj/christopherjohnson.perspectivev3
index 09c35a6..19849f5 100755
--- a/plugins/MacVST/ToVinyl4/ToVinyl4.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ToVinyl4/ToVinyl4.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B7673412002CFD90068FDCE</string>
+ <string>8B7941F021F60CDA006E9731</string>
<key>history</key>
<array>
- <string>8B4D27EC2002CE340051360A</string>
+ <string>8B7673412002CFD90068FDCE</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 86}}</string>
+ <string>{{0, 0}, {603, 69}}</string>
<key>RubberWindowFrame</key>
<string>594 373 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>86pt</string>
+ <string>69pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>355pt</string>
+ <string>372pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 328}}</string>
+ <string>{{10, 27}, {603, 345}}</string>
<key>RubberWindowFrame</key>
<string>594 373 810 487 0 0 1440 878 </string>
</dict>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B7673422002CFD90068FDCE</string>
+ <string>8B7941F121F60CDA006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B7673432002CFD90068FDCE</string>
+ <string>8B7941F221F60CDA006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B7673442002CFD90068FDCE</string>
+ <string>8B7941F321F60CDA006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>537055193.49498403</real>
+ <real>569773274.60291398</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
diff --git a/plugins/MacVST/ToVinyl4/source/ToVinyl4.cpp b/plugins/MacVST/ToVinyl4/source/ToVinyl4.cpp
index b0c91f8..429187c 100755
--- a/plugins/MacVST/ToVinyl4/source/ToVinyl4.cpp
+++ b/plugins/MacVST/ToVinyl4/source/ToVinyl4.cpp
@@ -87,11 +87,8 @@ ToVinyl4::ToVinyl4(audioMasterCallback audioMaster) :
B = 0.3424051; //44.0 hz = ((B*B)*290)+10 (B*B)*290 = 34 (B*B) = 0.1172413 sqrt() = 0.3424051
C = 0.32;
D = 0.064;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/ToVinyl4/source/ToVinyl4.h b/plugins/MacVST/ToVinyl4/source/ToVinyl4.h
index 57bffac..6a2dc26 100755
--- a/plugins/MacVST/ToVinyl4/source/ToVinyl4.h
+++ b/plugins/MacVST/ToVinyl4/source/ToVinyl4.h
@@ -142,11 +142,8 @@ private:
double bMidPrev;
double bSidePrev;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/ToVinyl4/source/ToVinyl4Proc.cpp b/plugins/MacVST/ToVinyl4/source/ToVinyl4Proc.cpp
index 8d9dc0c..a67af99 100755
--- a/plugins/MacVST/ToVinyl4/source/ToVinyl4Proc.cpp
+++ b/plugins/MacVST/ToVinyl4/source/ToVinyl4Proc.cpp
@@ -17,9 +17,6 @@ void ToVinyl4::processReplacing(float **inputs, float **outputs, VstInt32 sample
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double fusswithscale = 50000; //corrected
double cutofffreq = ((A*A)*290.0)+10.0;
@@ -464,25 +461,14 @@ void ToVinyl4::processReplacing(float **inputs, float **outputs, VstInt32 sample
inputSampleR = accumulatorSample;
//we just re-use accumulatorSample to do this little shuffle
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -504,9 +490,6 @@ void ToVinyl4::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double fusswithscale = 50000; //corrected
double cutofffreq = ((A*A)*290.0)+10.0;
@@ -950,25 +933,16 @@ void ToVinyl4::processDoubleReplacing(double **inputs, double **outputs, VstInt3
inputSampleR = accumulatorSample;
//we just re-use accumulatorSample to do this little shuffle
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/ToneSlant/ToneSlant.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/ToneSlant/ToneSlant.xcodeproj/christopherjohnson.pbxuser
index ed37f4c..ec11856 100755
--- a/plugins/MacVST/ToneSlant/ToneSlant.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/ToneSlant/ToneSlant.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528463692;
- PBXWorkspaceStateSaveDate = 528463692;
+ PBXPerProjectTemplateStateSaveDate = 569773146;
+ PBXWorkspaceStateSaveDate = 569773146;
};
perUserProjectItems = {
8B42FB431DB15F0F0057B6AB /* PBXTextBookmark */ = 8B42FB431DB15F0F0057B6AB /* PBXTextBookmark */;
- 8B9D714F1F7EF9AB007AB60F /* PBXTextBookmark */ = 8B9D714F1F7EF9AB007AB60F /* PBXTextBookmark */;
+ 8B7941A921F60C62006E9731 /* PBXTextBookmark */ = 8B7941A921F60C62006E9731 /* PBXTextBookmark */;
8B9D7F211F7FB75D007AB60F /* PBXTextBookmark */ = 8B9D7F211F7FB75D007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -87,7 +87,7 @@
};
24D8286F09A914000093AEF8 /* ToneSlantProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {554, 3536}}";
+ sepNavIntBoundsRect = "{{0, 0}, {554, 3224}}";
sepNavSelRange = "{1408, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{428, 47}, {895, 831}}";
@@ -117,10 +117,10 @@
vrLen = 71;
vrLoc = 1774;
};
- 8B9D714F1F7EF9AB007AB60F /* PBXTextBookmark */ = {
+ 8B7941A921F60C62006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* ToneSlantProc.cpp */;
- name = "ToneSlantProc.cpp: 49";
+ name = "ToneSlantProc.cpp: 51";
rLen = 0;
rLoc = 1408;
rType = 0;
diff --git a/plugins/MacVST/ToneSlant/ToneSlant.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/ToneSlant/ToneSlant.xcodeproj/christopherjohnson.perspectivev3
index 8350aa9..20a16b4 100755
--- a/plugins/MacVST/ToneSlant/ToneSlant.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/ToneSlant/ToneSlant.xcodeproj/christopherjohnson.perspectivev3
@@ -351,11 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7F211F7FB75D007AB60F</string>
+ <string>8B7941A921F60C62006E9731</string>
<key>history</key>
<array>
<string>8B42FB431DB15F0F0057B6AB</string>
- <string>8B9D714F1F7EF9AB007AB60F</string>
+ <string>8B9D7F211F7FB75D007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>575 281 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,7 +394,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
<string>575 281 810 487 0 0 1440 878 </string>
</dict>
@@ -478,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7F221F7FB75D007AB60F</string>
+ <string>8B7941AA21F60C62006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7F231F7FB75D007AB60F</string>
+ <string>8B7941AB21F60C62006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7F241F7FB75D007AB60F</string>
+ <string>8B7941AC21F60C62006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528463709.164518</real>
+ <real>569773154.60327995</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -652,7 +652,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7F251F7FB75D007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/ToneSlant/ToneSlant.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/ToneSlant/source/ToneSlant.cpp b/plugins/MacVST/ToneSlant/source/ToneSlant.cpp
index 0ed3618..d99fa60 100755
--- a/plugins/MacVST/ToneSlant/source/ToneSlant.cpp
+++ b/plugins/MacVST/ToneSlant/source/ToneSlant.cpp
@@ -15,11 +15,8 @@ ToneSlant::ToneSlant(audioMasterCallback audioMaster) :
A = 0.0;
B = 0.0;
for(int count = 0; count < 102; count++) {bL[count] = 0.0; bR[count] = 0.0; f[count] = 0.0;}
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/ToneSlant/source/ToneSlant.h b/plugins/MacVST/ToneSlant/source/ToneSlant.h
index 655cc55..7c52bca 100755
--- a/plugins/MacVST/ToneSlant/source/ToneSlant.h
+++ b/plugins/MacVST/ToneSlant/source/ToneSlant.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/ToneSlant/source/ToneSlantProc.cpp b/plugins/MacVST/ToneSlant/source/ToneSlantProc.cpp
index b594b05..d78cfb5 100755
--- a/plugins/MacVST/ToneSlant/source/ToneSlantProc.cpp
+++ b/plugins/MacVST/ToneSlant/source/ToneSlantProc.cpp
@@ -14,9 +14,6 @@ void ToneSlant::processReplacing(float **inputs, float **outputs, VstInt32 sampl
float* out1 = outputs[0];
float* out2 = outputs[1];
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputSampleL;
double inputSampleR;
@@ -109,25 +106,14 @@ void ToneSlant::processReplacing(float **inputs, float **outputs, VstInt32 sampl
inputSampleR += (correctionSampleR * applySlant);
//our one math operation on the input data coming in
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -146,9 +132,6 @@ void ToneSlant::processDoubleReplacing(double **inputs, double **outputs, VstInt
double* out1 = outputs[0];
double* out2 = outputs[1];
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double inputSampleL;
double inputSampleR;
@@ -240,25 +223,16 @@ void ToneSlant::processDoubleReplacing(double **inputs, double **outputs, VstInt
inputSampleR += (correctionSampleR * applySlant);
//our one math operation on the input data coming in
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/TransDesk/TransDesk.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/TransDesk/TransDesk.xcodeproj/christopherjohnson.pbxuser
index e3ec9d4..4346de3 100755
--- a/plugins/MacVST/TransDesk/TransDesk.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/TransDesk/TransDesk.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528463797;
- PBXWorkspaceStateSaveDate = 528463797;
+ PBXPerProjectTemplateStateSaveDate = 569773315;
+ PBXWorkspaceStateSaveDate = 569773315;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
diff --git a/plugins/MacVST/TransDesk/TransDesk.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/TransDesk/TransDesk.xcodeproj/christopherjohnson.perspectivev3
index be4151f..a084408 100755
--- a/plugins/MacVST/TransDesk/TransDesk.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/TransDesk/TransDesk.xcodeproj/christopherjohnson.perspectivev3
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7F801F7FB7C8007AB60F</string>
+ <string>8B79421021F60D0A006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7F811F7FB7C8007AB60F</string>
+ <string>8B79421121F60D0A006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7F821F7FB7C8007AB60F</string>
+ <string>8B79421221F60D0A006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528463816.43040597</real>
+ <real>569773322.06946695</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7F831F7FB7C8007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/TransDesk/TransDesk.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/TransDesk/source/TransDesk.cpp b/plugins/MacVST/TransDesk/source/TransDesk.cpp
index 24443bd..3f352f7 100755
--- a/plugins/MacVST/TransDesk/source/TransDesk.cpp
+++ b/plugins/MacVST/TransDesk/source/TransDesk.cpp
@@ -25,11 +25,8 @@ TransDesk::TransDesk(audioMasterCallback audioMaster) :
lastOutSampleR = 0.0;
lastSlewR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/TransDesk/source/TransDesk.h b/plugins/MacVST/TransDesk/source/TransDesk.h
index b3b891d..5729b4c 100755
--- a/plugins/MacVST/TransDesk/source/TransDesk.h
+++ b/plugins/MacVST/TransDesk/source/TransDesk.h
@@ -51,11 +51,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
int gcount;
diff --git a/plugins/MacVST/TransDesk/source/TransDeskProc.cpp b/plugins/MacVST/TransDesk/source/TransDeskProc.cpp
index c7df5e8..c8b45c2 100755
--- a/plugins/MacVST/TransDesk/source/TransDeskProc.cpp
+++ b/plugins/MacVST/TransDesk/source/TransDeskProc.cpp
@@ -17,9 +17,6 @@ void TransDesk::processReplacing(float **inputs, float **outputs, VstInt32 sampl
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double intensity = 0.02198359;
double depthA = 3.0;
@@ -200,25 +197,14 @@ void TransDesk::processReplacing(float **inputs, float **outputs, VstInt32 sampl
gcount--;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -240,9 +226,6 @@ void TransDesk::processDoubleReplacing(double **inputs, double **outputs, VstInt
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double intensity = 0.02198359;
double depthA = 3.0;
@@ -423,25 +406,16 @@ void TransDesk::processDoubleReplacing(double **inputs, double **outputs, VstInt
gcount--;
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Tremolo/Tremolo.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Tremolo/Tremolo.xcodeproj/christopherjohnson.pbxuser
index eabc2fb..170e53c 100755
--- a/plugins/MacVST/Tremolo/Tremolo.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Tremolo/Tremolo.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528463825;
- PBXWorkspaceStateSaveDate = 528463825;
+ PBXPerProjectTemplateStateSaveDate = 569773339;
+ PBXWorkspaceStateSaveDate = 569773339;
};
perUserProjectItems = {
- 8B9D71CC1F7EFAE7007AB60F /* PBXTextBookmark */ = 8B9D71CC1F7EFAE7007AB60F /* PBXTextBookmark */;
+ 8B79422F21F60D22006E9731 /* PBXTextBookmark */ = 8B79422F21F60D22006E9731 /* PBXTextBookmark */;
8B9D7F9F1F7FB7DF007AB60F /* PBXTextBookmark */ = 8B9D7F9F1F7FB7DF007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -106,7 +106,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D71CC1F7EFAE7007AB60F /* PBXTextBookmark */ = {
+ 8B79422F21F60D22006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
diff --git a/plugins/MacVST/Tremolo/Tremolo.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Tremolo/Tremolo.xcodeproj/christopherjohnson.perspectivev3
index 16e3a4d..2a3782e 100755
--- a/plugins/MacVST/Tremolo/Tremolo.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Tremolo/Tremolo.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7F9F1F7FB7DF007AB60F</string>
+ <string>8B79422F21F60D22006E9731</string>
<key>history</key>
<array>
- <string>8B9D71CC1F7EFAE7007AB60F</string>
+ <string>8B9D7F9F1F7FB7DF007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7FA01F7FB7DF007AB60F</string>
+ <string>8B79423021F60D22006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7FA11F7FB7DF007AB60F</string>
+ <string>8B79423121F60D22006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7FA21F7FB7DF007AB60F</string>
+ <string>8B79423221F60D22006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528463839.58097899</real>
+ <real>569773346.55622005</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7FA31F7FB7DF007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/Tremolo/Tremolo.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/Tremolo/source/Tremolo.cpp b/plugins/MacVST/Tremolo/source/Tremolo.cpp
index be5d06d..f0b649d 100755
--- a/plugins/MacVST/Tremolo/source/Tremolo.cpp
+++ b/plugins/MacVST/Tremolo/source/Tremolo.cpp
@@ -21,11 +21,8 @@ Tremolo::Tremolo(audioMasterCallback audioMaster) :
depthAmount = 0.0;
lastSpeed = 1000.0;
lastDepth = 1000.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Tremolo/source/Tremolo.h b/plugins/MacVST/Tremolo/source/Tremolo.h
index ea40aa6..11fc718 100755
--- a/plugins/MacVST/Tremolo/source/Tremolo.h
+++ b/plugins/MacVST/Tremolo/source/Tremolo.h
@@ -53,11 +53,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double sweep;
diff --git a/plugins/MacVST/Tremolo/source/TremoloProc.cpp b/plugins/MacVST/Tremolo/source/TremoloProc.cpp
index d0de7cc..d27dc86 100755
--- a/plugins/MacVST/Tremolo/source/TremoloProc.cpp
+++ b/plugins/MacVST/Tremolo/source/TremoloProc.cpp
@@ -17,9 +17,6 @@ void Tremolo::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
speedChase = pow(A,4);
depthChase = B;
@@ -151,25 +148,14 @@ void Tremolo::processReplacing(float **inputs, float **outputs, VstInt32 sampleF
inputSampleR = (drySampleR * (1-depth)) + (inputSampleR*depth);
//end R
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -191,9 +177,6 @@ void Tremolo::processDoubleReplacing(double **inputs, double **outputs, VstInt32
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
speedChase = pow(A,4);
depthChase = B;
@@ -326,25 +309,16 @@ void Tremolo::processDoubleReplacing(double **inputs, double **outputs, VstInt32
inputSampleR = (drySampleR * (1-depth)) + (inputSampleR*depth);
//end R
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/TubeDesk/TubeDesk.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/TubeDesk/TubeDesk.xcodeproj/christopherjohnson.pbxuser
index 39db978..f2588de 100755
--- a/plugins/MacVST/TubeDesk/TubeDesk.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/TubeDesk/TubeDesk.xcodeproj/christopherjohnson.pbxuser
@@ -49,11 +49,11 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 528463849;
- PBXWorkspaceStateSaveDate = 528463849;
+ PBXPerProjectTemplateStateSaveDate = 569773377;
+ PBXWorkspaceStateSaveDate = 569773377;
};
perUserProjectItems = {
- 8B9D71EC1F7EFB47007AB60F /* PBXTextBookmark */ = 8B9D71EC1F7EFB47007AB60F /* PBXTextBookmark */;
+ 8B79424F21F60D4A006E9731 /* PBXTextBookmark */ = 8B79424F21F60D4A006E9731 /* PBXTextBookmark */;
8B9D7FBF1F7FB7FA007AB60F /* PBXTextBookmark */ = 8B9D7FBF1F7FB7FA007AB60F /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -106,7 +106,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B9D71EC1F7EFB47007AB60F /* PBXTextBookmark */ = {
+ 8B79424F21F60D4A006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
diff --git a/plugins/MacVST/TubeDesk/TubeDesk.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/TubeDesk/TubeDesk.xcodeproj/christopherjohnson.perspectivev3
index b3bcad8..a09ec6b 100755
--- a/plugins/MacVST/TubeDesk/TubeDesk.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/TubeDesk/TubeDesk.xcodeproj/christopherjohnson.perspectivev3
@@ -351,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B9D7FBF1F7FB7FA007AB60F</string>
+ <string>8B79424F21F60D4A006E9731</string>
<key>history</key>
<array>
- <string>8B9D71EC1F7EFB47007AB60F</string>
+ <string>8B9D7FBF1F7FB7FA007AB60F</string>
</array>
</dict>
<key>SplitCount</key>
@@ -368,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 13}}</string>
+ <string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
<string>422 271 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>13pt</string>
+ <string>0pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>428pt</string>
+ <string>441pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -393,7 +393,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 401}}</string>
+ <string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
<string>422 271 810 487 0 0 1440 878 </string>
</dict>
@@ -477,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B9D7FC01F7FB7FA007AB60F</string>
+ <string>8B79425021F60D4A006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B9D7FC11F7FB7FA007AB60F</string>
+ <string>8B79425121F60D4A006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B9D7FC21F7FB7FA007AB60F</string>
+ <string>8B79425221F60D4A006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -634,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>528463866.70419401</real>
+ <real>569773386.273072</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -651,7 +651,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B9D7FC31F7FB7FA007AB60F</string>
<string>/Users/christopherjohnson/Desktop/MacVST/TubeDesk/TubeDesk.xcodeproj</string>
</array>
<key>WindowString</key>
diff --git a/plugins/MacVST/TubeDesk/source/TubeDesk.cpp b/plugins/MacVST/TubeDesk/source/TubeDesk.cpp
index fc4bd75..5a7465c 100755
--- a/plugins/MacVST/TubeDesk/source/TubeDesk.cpp
+++ b/plugins/MacVST/TubeDesk/source/TubeDesk.cpp
@@ -25,11 +25,8 @@ TubeDesk::TubeDesk(audioMasterCallback audioMaster) :
lastOutSampleR = 0.0;
lastSlewR = 0.0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/TubeDesk/source/TubeDesk.h b/plugins/MacVST/TubeDesk/source/TubeDesk.h
index b41b283..fb15768 100755
--- a/plugins/MacVST/TubeDesk/source/TubeDesk.h
+++ b/plugins/MacVST/TubeDesk/source/TubeDesk.h
@@ -51,11 +51,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
int gcount;
diff --git a/plugins/MacVST/TubeDesk/source/TubeDeskProc.cpp b/plugins/MacVST/TubeDesk/source/TubeDeskProc.cpp
index 2636076..cccf6e2 100755
--- a/plugins/MacVST/TubeDesk/source/TubeDeskProc.cpp
+++ b/plugins/MacVST/TubeDesk/source/TubeDeskProc.cpp
@@ -17,9 +17,6 @@ void TubeDesk::processReplacing(float **inputs, float **outputs, VstInt32 sample
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double intensity = 0.4384938;
double depthA = 549.0;
@@ -199,25 +196,14 @@ void TubeDesk::processReplacing(float **inputs, float **outputs, VstInt32 sample
gcount--;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -239,9 +225,6 @@ void TubeDesk::processDoubleReplacing(double **inputs, double **outputs, VstInt3
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp; //this is different from singlereplacing
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
double intensity = 0.4384938;
double depthA = 549.0;
@@ -421,25 +404,16 @@ void TubeDesk::processDoubleReplacing(double **inputs, double **outputs, VstInt3
gcount--;
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/UnBox/UnBox.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/UnBox/UnBox.xcodeproj/christopherjohnson.pbxuser
index d840507..0fc18df 100755
--- a/plugins/MacVST/UnBox/UnBox.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/UnBox/UnBox.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 557535066;
- PBXWorkspaceStateSaveDate = 557535066;
+ PBXPerProjectTemplateStateSaveDate = 569773466;
+ PBXWorkspaceStateSaveDate = 569773466;
};
perUserProjectItems = {
- 8B6DBA77213B59C900E44739 /* XCBuildMessageTextBookmark */ = 8B6DBA77213B59C900E44739 /* XCBuildMessageTextBookmark */;
8B6DBA78213B59C900E44739 /* PBXTextBookmark */ = 8B6DBA78213B59C900E44739 /* PBXTextBookmark */;
+ 8B7942AD21F60DA4006E9731 /* PBXTextBookmark */ = 8B7942AD21F60DA4006E9731 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -78,9 +78,9 @@
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {838, 19747}}";
+ sepNavIntBoundsRect = "{{0, 0}, {838, 19877}}";
sepNavSelRange = "{10616, 0}";
- sepNavVisRange = "{10459, 399}";
+ sepNavVisRange = "{10459, 280}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
@@ -106,23 +106,24 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8B6DBA77213B59C900E44739 /* XCBuildMessageTextBookmark */ = {
+ 8B6DBA78213B59C900E44739 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "Deprecated conversion from string constant to 'char*'";
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
- fallbackIsa = XCBuildMessageTextBookmark;
- rLen = 1;
- rLoc = 306;
- rType = 1;
+ name = "audioeffectx.cpp: 307";
+ rLen = 0;
+ rLoc = 10616;
+ rType = 0;
+ vrLen = 399;
+ vrLoc = 10459;
};
- 8B6DBA78213B59C900E44739 /* PBXTextBookmark */ = {
+ 8B7942AD21F60DA4006E9731 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
name = "audioeffectx.cpp: 307";
rLen = 0;
rLoc = 10616;
rType = 0;
- vrLen = 399;
+ vrLen = 280;
vrLoc = 10459;
};
8D01CCC60486CAD60068D4B7 /* UnBox */ = {
diff --git a/plugins/MacVST/UnBox/UnBox.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/UnBox/UnBox.xcodeproj/christopherjohnson.perspectivev3
index 6a3b9e1..d995ead 100755
--- a/plugins/MacVST/UnBox/UnBox.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/UnBox/UnBox.xcodeproj/christopherjohnson.perspectivev3
@@ -256,6 +256,8 @@
<key>Layout</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXBottomSmartGroupGIDs</key>
@@ -349,10 +351,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8B6DBA78213B59C900E44739</string>
+ <string>8B7942AD21F60DA4006E9731</string>
<key>history</key>
<array>
- <string>8B6DBA77213B59C900E44739</string>
+ <string>8B6DBA78213B59C900E44739</string>
</array>
</dict>
<key>SplitCount</key>
@@ -366,18 +368,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 132}}</string>
+ <string>{{0, 0}, {603, 117}}</string>
<key>RubberWindowFrame</key>
<string>64 284 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>132pt</string>
+ <string>117pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>309pt</string>
+ <string>324pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -391,7 +393,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 414}}</string>
+ <string>{{10, 27}, {603, 297}}</string>
+ <key>RubberWindowFrame</key>
+ <string>64 284 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -446,8 +450,6 @@
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 282}}</string>
- <key>RubberWindowFrame</key>
- <string>64 284 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -475,11 +477,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B6DBA79213B59C900E44739</string>
+ <string>8B7942AE21F60DA4006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B6DBA7A213B59C900E44739</string>
+ <string>8B7942AF21F60DA4006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B6DBA7B213B59C900E44739</string>
+ <string>8B7942B021F60DA4006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -632,7 +634,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>557537737.84302604</real>
+ <real>569773476.89428103</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -649,7 +651,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/UnBox/UnBox.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/UnBox/UnBox.xcodeproj</string>
</array>
<key>WindowString</key>
<string>64 284 810 487 0 0 1440 878 </string>
diff --git a/plugins/MacVST/UnBox/source/UnBoxProc.cpp b/plugins/MacVST/UnBox/source/UnBoxProc.cpp
index 12133dc..3cb3aab 100755
--- a/plugins/MacVST/UnBox/source/UnBoxProc.cpp
+++ b/plugins/MacVST/UnBox/source/UnBoxProc.cpp
@@ -218,18 +218,14 @@ void UnBox::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
if (output != 1.0) {inputSampleL *= output; inputSampleR *= output;}
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -239,12 +235,6 @@ void UnBox::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void UnBox::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -458,18 +448,16 @@ void UnBox::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
if (output != 1.0) {inputSampleL *= output; inputSampleR *= output;}
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -479,10 +467,4 @@ void UnBox::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/VariMu/VariMu.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/VariMu/VariMu.xcodeproj/christopherjohnson.pbxuser
index 817d97b..26171e9 100755
--- a/plugins/MacVST/VariMu/VariMu.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/VariMu/VariMu.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* VariMu */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 553992948;
- PBXWorkspaceStateSaveDate = 553992948;
+ PBXPerProjectTemplateStateSaveDate = 569773498;
+ PBXWorkspaceStateSaveDate = 569773498;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* VariMu */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/VariMu/VariMu.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/VariMu/VariMu.xcodeproj/christopherjohnson.perspectivev3
index 95718ee..1fd954d 100755
--- a/plugins/MacVST/VariMu/VariMu.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/VariMu/VariMu.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>50 341 810 487 0 0 1440 878 </string>
+ <string>398 267 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -362,7 +362,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>50 341 810 487 0 0 1440 878 </string>
+ <string>398 267 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -387,7 +387,7 @@
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
- <string>50 341 810 487 0 0 1440 878 </string>
+ <string>398 267 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BBD1887210542F70015A233</string>
+ <string>8B7942CD21F60DC2006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BBD1888210542F70015A233</string>
+ <string>8B7942CE21F60DC2006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BBD1889210542F70015A233</string>
+ <string>8B7942CF21F60DC2006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>553992991.79695594</real>
+ <real>569773506.89082396</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -646,7 +646,7 @@
<string>/Users/christopherjohnson/Desktop/MacVST/VariMu/VariMu.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>50 341 810 487 0 0 1440 878 </string>
+ <string>398 267 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/VariMu/source/VariMuProc.cpp b/plugins/MacVST/VariMu/source/VariMuProc.cpp
index b966cd8..323b5e4 100755
--- a/plugins/MacVST/VariMu/source/VariMuProc.cpp
+++ b/plugins/MacVST/VariMu/source/VariMuProc.cpp
@@ -233,18 +233,14 @@ void VariMu::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -254,12 +250,6 @@ void VariMu::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void VariMu::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -488,18 +478,16 @@ void VariMu::processDoubleReplacing(double **inputs, double **outputs, VstInt32
//nice little output stage template: if we have another scale of floating point
//number, we really don't want to meaninglessly multiply that by 1.0.
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -509,10 +497,4 @@ void VariMu::processDoubleReplacing(double **inputs, double **outputs, VstInt32
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/christopherjohnson.pbxuser
index cc6b613..2be57bf 100644..100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/christopherjohnson.pbxuser
@@ -2,7 +2,7 @@
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
- activeTarget = 8D01CCC60486CAD60068D4B7 /* VoiceOfTheStarship */;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* AudioUnit */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 538706768;
- PBXWorkspaceStateSaveDate = 538706768;
+ PBXPerProjectTemplateStateSaveDate = 569773528;
+ PBXWorkspaceStateSaveDate = 569773528;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
@@ -102,7 +102,7 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
- 8D01CCC60486CAD60068D4B7 /* VoiceOfTheStarship */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
activeExec = 0;
};
}
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/christopherjohnson.perspectivev3
index 2952204..91123cf 100644..100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/christopherjohnson.perspectivev3
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B4E5825201C035700B5DC2A</string>
+ <string>8B7942EC21F60DE2006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B4E5826201C035700B5DC2A</string>
+ <string>8B7942ED21F60DE2006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B4E5827201C035700B5DC2A</string>
+ <string>8B7942EE21F60DE2006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>538709213.91348803</real>
+ <real>569773538.74268901</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,7 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>/Users/christopherjohnson/Desktop/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj</string>
+ <string>/Users/christopherjohnson/Desktop/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj</string>
</array>
<key>WindowString</key>
<string>123 420 688 434 0 0 1440 878 </string>
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.pbxproj b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.pbxproj
index 6a80a71..1ae3b0f 100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.pbxproj
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.pbxproj
@@ -1894,7 +1894,7 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
- 8D01CCC60486CAD60068D4B7 /* VoiceOfTheStarship */ = {
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "VoiceOfTheStarship" */;
buildPhases = (
@@ -1947,7 +1947,7 @@
);
projectRoot = "";
targets = (
- 8D01CCC60486CAD60068D4B7 /* VoiceOfTheStarship */,
+ 8D01CCC60486CAD60068D4B7 /* AudioUnit */,
);
};
/* End PBXProject section */
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index a80c038..a80c038 100644..100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
index 5c38f94..5c38f94 100644..100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
index 314de0f..314de0f 100644..100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/spiadmin.mode1v3
index c572326..c572326 100644..100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/spiadmin.mode1v3
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/spiadmin.mode1v3
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/spiadmin.pbxuser
index df94780..df94780 100644..100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/spiadmin.pbxuser
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/spiadmin.pbxuser
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
index 8ee693f..8ee693f 100644..100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
index 5bccbcb..5bccbcb 100644..100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
index a7bdd62..a7bdd62 100644..100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
index 0df2de4..0df2de4 100644..100755
--- a/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
+++ b/plugins/MacVST/VoiceOfTheStarship/VoiceOfTheStarship.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
diff --git a/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarship.cpp b/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarship.cpp
index c30bd47..19f1d94 100755
--- a/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarship.cpp
+++ b/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarship.cpp
@@ -28,11 +28,8 @@ VoiceOfTheStarship::VoiceOfTheStarship(audioMasterCallback audioMaster) :
for(int count = 0; count < 11; count++) {bL[count] = 0.0; bR[count] = 0.0; f[count] = 0.0;}
lastAlgorithm = 0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarship.h b/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarship.h
index febb344..519923b 100755
--- a/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarship.h
+++ b/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarship.h
@@ -73,11 +73,8 @@ private:
int lastAlgorithm;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
float A;
diff --git a/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarshipProc.cpp b/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarshipProc.cpp
index 32979d0..bbb14fa 100755
--- a/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarshipProc.cpp
+++ b/plugins/MacVST/VoiceOfTheStarship/source/VoiceOfTheStarshipProc.cpp
@@ -79,9 +79,6 @@ void VoiceOfTheStarship::processReplacing(float **inputs, float **outputs, VstIn
double inputSampleL;
double inputSampleR;
- float fpTemp;
- double fpOld = 0.618033988749894848204586; //golden ratio!
- double fpNew = 1.0 - fpOld;
while (--sampleFrames >= 0)
{
@@ -181,25 +178,14 @@ void VoiceOfTheStarship::processReplacing(float **inputs, float **outputs, VstIn
filterflip = !filterflip;
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -283,9 +269,6 @@ void VoiceOfTheStarship::processDoubleReplacing(double **inputs, double **output
double inputSampleL;
double inputSampleR;
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
while (--sampleFrames >= 0)
{
@@ -384,25 +367,16 @@ void VoiceOfTheStarship::processDoubleReplacing(double **inputs, double **output
flipR = !flipR;
filterflip = !filterflip;
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/Wider/Wider.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Wider/Wider.xcodeproj/christopherjohnson.pbxuser
index 83caea6..5391b9e 100755
--- a/plugins/MacVST/Wider/Wider.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/Wider/Wider.xcodeproj/christopherjohnson.pbxuser
@@ -49,12 +49,12 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 546573996;
- PBXWorkspaceStateSaveDate = 546573996;
+ PBXPerProjectTemplateStateSaveDate = 569773559;
+ PBXWorkspaceStateSaveDate = 569773559;
};
perUserProjectItems = {
+ 8B79430B21F60E03006E9731 /* PBXTextBookmark */ = 8B79430B21F60E03006E9731 /* PBXTextBookmark */;
8BC5D04620940E2D0058B257 /* PBXTextBookmark */ = 8BC5D04620940E2D0058B257 /* PBXTextBookmark */;
- 8BC5D07D20940F320058B257 /* PBXTextBookmark */ = 8BC5D07D20940F320058B257 /* PBXTextBookmark */;
8BC5D07E20940F320058B257 /* PBXTextBookmark */ = 8BC5D07E20940F320058B257 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
@@ -87,9 +87,9 @@
};
24D8286F09A914000093AEF8 /* WiderProc.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {852, 4394}}";
+ sepNavIntBoundsRect = "{{0, 0}, {691, 3926}}";
sepNavSelRange = "{7057, 0}";
- sepNavVisRange = "{6953, 155}";
+ sepNavVisRange = "{6846, 405}";
sepNavWindowFrame = "{{11, 47}, {895, 831}}";
};
};
@@ -107,6 +107,16 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
+ 8B79430B21F60E03006E9731 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 24D8286F09A914000093AEF8 /* WiderProc.cpp */;
+ name = "WiderProc.cpp: 203";
+ rLen = 0;
+ rLoc = 7057;
+ rType = 0;
+ vrLen = 405;
+ vrLoc = 6846;
+ };
8BC5D04620940E2D0058B257 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */;
@@ -117,16 +127,6 @@
vrLen = 280;
vrLoc = 10459;
};
- 8BC5D07D20940F320058B257 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 24D8286F09A914000093AEF8 /* WiderProc.cpp */;
- name = "WiderProc.cpp: 209";
- rLen = 0;
- rLoc = 7057;
- rType = 0;
- vrLen = 155;
- vrLoc = 6953;
- };
8BC5D07E20940F320058B257 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* WiderProc.cpp */;
diff --git a/plugins/MacVST/Wider/Wider.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Wider/Wider.xcodeproj/christopherjohnson.perspectivev3
index 733a26c..f44db5a 100755
--- a/plugins/MacVST/Wider/Wider.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/Wider/Wider.xcodeproj/christopherjohnson.perspectivev3
@@ -351,11 +351,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>8BC5D07E20940F320058B257</string>
+ <string>8B79430B21F60E03006E9731</string>
<key>history</key>
<array>
<string>8BC5D04620940E2D0058B257</string>
- <string>8BC5D07D20940F320058B257</string>
+ <string>8BC5D07E20940F320058B257</string>
</array>
</dict>
<key>SplitCount</key>
@@ -369,18 +369,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {603, 102}}</string>
+ <string>{{0, 0}, {603, 86}}</string>
<key>RubberWindowFrame</key>
<string>29 317 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>102pt</string>
+ <string>86pt</string>
</dict>
<dict>
<key>Proportion</key>
- <string>339pt</string>
+ <string>355pt</string>
<key>Tabs</key>
<array>
<dict>
@@ -394,7 +394,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {603, 312}}</string>
+ <string>{{10, 27}, {603, 328}}</string>
<key>RubberWindowFrame</key>
<string>29 317 810 487 0 0 1440 878 </string>
</dict>
@@ -478,11 +478,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8BC5D07F20940F320058B257</string>
+ <string>8B79430C21F60E03006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8BC5D08020940F320058B257</string>
+ <string>8B79430D21F60E03006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8BC5D08120940F320058B257</string>
+ <string>8B79430E21F60E03006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -635,7 +635,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>546574130.26758397</real>
+ <real>569773571.22399402</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
diff --git a/plugins/MacVST/Wider/source/Wider.cpp b/plugins/MacVST/Wider/source/Wider.cpp
index c1e57d0..26d4d47 100755
--- a/plugins/MacVST/Wider/source/Wider.cpp
+++ b/plugins/MacVST/Wider/source/Wider.cpp
@@ -17,11 +17,8 @@ Wider::Wider(audioMasterCallback audioMaster) :
C = 1.0;
for(int fcount = 0; fcount < 4098; fcount++) {p[fcount] = 0.0;}
count = 0;
- fpNShapeLA = 0.0;
- fpNShapeLB = 0.0;
- fpNShapeRA = 0.0;
- fpNShapeRB = 0.0;
- fpFlip = true;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
diff --git a/plugins/MacVST/Wider/source/Wider.h b/plugins/MacVST/Wider/source/Wider.h
index 8b04cfb..6a6a2df 100755
--- a/plugins/MacVST/Wider/source/Wider.h
+++ b/plugins/MacVST/Wider/source/Wider.h
@@ -54,11 +54,8 @@ private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
- long double fpNShapeLA;
- long double fpNShapeLB;
- long double fpNShapeRA;
- long double fpNShapeRB;
- bool fpFlip;
+ long double fpNShapeL;
+ long double fpNShapeR;
//default stuff
double p[4099];
diff --git a/plugins/MacVST/Wider/source/WiderProc.cpp b/plugins/MacVST/Wider/source/WiderProc.cpp
index 618e651..f90fa21 100755
--- a/plugins/MacVST/Wider/source/WiderProc.cpp
+++ b/plugins/MacVST/Wider/source/WiderProc.cpp
@@ -17,9 +17,6 @@ void Wider::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- float fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -141,25 +138,14 @@ void Wider::processReplacing(float **inputs, float **outputs, VstInt32 sampleFra
inputSampleL = (drySampleL * dry) + ((mid+side) * wet);
inputSampleR = (drySampleR * dry) + ((mid-side) * wet);
- //noise shaping to 32-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -181,9 +167,6 @@ void Wider::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
- double fpTemp;
- long double fpOld = 0.618033988749894848204586; //golden ratio!
- long double fpNew = 1.0 - fpOld;
long double inputSampleL;
long double inputSampleR;
@@ -305,25 +288,16 @@ void Wider::processDoubleReplacing(double **inputs, double **outputs, VstInt32 s
inputSampleL = (drySampleL * dry) + ((mid+side) * wet);
inputSampleR = (drySampleR * dry) + ((mid-side) * wet);
- //noise shaping to 64-bit floating point
- if (fpFlip) {
- fpTemp = inputSampleL;
- fpNShapeLA = (fpNShapeLA*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLA;
- fpTemp = inputSampleR;
- fpNShapeRA = (fpNShapeRA*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRA;
- }
- else {
- fpTemp = inputSampleL;
- fpNShapeLB = (fpNShapeLB*fpOld)+((inputSampleL-fpTemp)*fpNew);
- inputSampleL += fpNShapeLB;
- fpTemp = inputSampleR;
- fpNShapeRB = (fpNShapeRB*fpOld)+((inputSampleR-fpTemp)*fpNew);
- inputSampleR += fpNShapeRB;
- }
- fpFlip = !fpFlip;
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
diff --git a/plugins/MacVST/uLawDecode/source/uLawDecodeProc.cpp b/plugins/MacVST/uLawDecode/source/uLawDecodeProc.cpp
index a78b3c2..1835623 100755
--- a/plugins/MacVST/uLawDecode/source/uLawDecodeProc.cpp
+++ b/plugins/MacVST/uLawDecode/source/uLawDecodeProc.cpp
@@ -88,18 +88,14 @@ void uLawDecode::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -109,12 +105,6 @@ void uLawDecode::processReplacing(float **inputs, float **outputs, VstInt32 samp
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void uLawDecode::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -198,18 +188,16 @@ void uLawDecode::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -219,10 +207,4 @@ void uLawDecode::processDoubleReplacing(double **inputs, double **outputs, VstIn
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/uLawDecode/uLawDecode.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/uLawDecode/uLawDecode.xcodeproj/christopherjohnson.pbxuser
index a221ade..78e474f 100755
--- a/plugins/MacVST/uLawDecode/uLawDecode.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/uLawDecode/uLawDecode.xcodeproj/christopherjohnson.pbxuser
@@ -75,8 +75,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 561241927;
- PBXWorkspaceStateSaveDate = 561241927;
+ PBXPerProjectTemplateStateSaveDate = 569773408;
+ PBXWorkspaceStateSaveDate = 569773408;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
diff --git a/plugins/MacVST/uLawDecode/uLawDecode.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/uLawDecode/uLawDecode.xcodeproj/christopherjohnson.perspectivev3
index 11e6474..45637a5 100755
--- a/plugins/MacVST/uLawDecode/uLawDecode.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/uLawDecode/uLawDecode.xcodeproj/christopherjohnson.perspectivev3
@@ -323,7 +323,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
- <string>24 356 810 487 0 0 1440 878 </string>
+ <string>426 311 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -362,7 +362,7 @@
<key>Frame</key>
<string>{{0, 0}, {603, 0}}</string>
<key>RubberWindowFrame</key>
- <string>24 356 810 487 0 0 1440 878 </string>
+ <string>426 311 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -387,7 +387,7 @@
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
<key>RubberWindowFrame</key>
- <string>24 356 810 487 0 0 1440 878 </string>
+ <string>426 311 810 487 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B2721E12173DF5E00396442</string>
+ <string>8B79426F21F60D67006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B2721E22173DF5E00396442</string>
+ <string>8B79427021F60D67006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B2721E32173DF5E00396442</string>
+ <string>8B79427121F60D67006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -646,7 +646,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>561241950.77135801</real>
+ <real>569773415.70611095</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -663,11 +663,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B2721E42173DF5E00396442</string>
<string>/Users/christopherjohnson/Desktop/MacVST/uLawDecode/uLawDecode.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>24 356 810 487 0 0 1440 878 </string>
+ <string>426 311 810 487 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
diff --git a/plugins/MacVST/uLawEncode/source/uLawEncodeProc.cpp b/plugins/MacVST/uLawEncode/source/uLawEncodeProc.cpp
index 3d86a7f..c5dd74d 100755
--- a/plugins/MacVST/uLawEncode/source/uLawEncodeProc.cpp
+++ b/plugins/MacVST/uLawEncode/source/uLawEncodeProc.cpp
@@ -88,18 +88,14 @@ void uLawEncode::processReplacing(float **inputs, float **outputs, VstInt32 samp
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 32-bit floating point
- float fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 32 bit output
+ //stereo 32 bit dither, made small and tidy.
+ int expon; frexpf((float)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexpf((float)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 32 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -109,12 +105,6 @@ void uLawEncode::processReplacing(float **inputs, float **outputs, VstInt32 samp
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
void uLawEncode::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
@@ -198,18 +188,16 @@ void uLawEncode::processDoubleReplacing(double **inputs, double **outputs, VstIn
inputSampleR = (inputSampleR * wet) + (drySampleR * dry);
}
- //noise shaping to 64-bit floating point
- double fpTemp = inputSampleL;
- fpNShapeL += (inputSampleL-fpTemp);
- inputSampleL += fpNShapeL;
- //if this confuses you look at the wordlength for fpTemp :)
- fpTemp = inputSampleR;
- fpNShapeR += (inputSampleR-fpTemp);
- inputSampleR += fpNShapeR;
- //for deeper space and warmth, we try a non-oscillating noise shaping
- //that is kind of ruthless: it will forever retain the rounding errors
- //except we'll dial it back a hair at the end of every buffer processed
- //end noise shaping on 64 bit output
+ //stereo 64 bit dither, made small and tidy.
+ int expon; frexp((double)inputSampleL, &expon);
+ long double dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleL += (dither-fpNShapeL); fpNShapeL = dither;
+ frexp((double)inputSampleR, &expon);
+ dither = (rand()/(RAND_MAX*7.737125245533627e+25))*pow(2,expon+62);
+ dither /= 536870912.0; //needs this to scale to 64 bit zone
+ inputSampleR += (dither-fpNShapeR); fpNShapeR = dither;
+ //end 64 bit dither
*out1 = inputSampleL;
*out2 = inputSampleR;
@@ -219,10 +207,4 @@ void uLawEncode::processDoubleReplacing(double **inputs, double **outputs, VstIn
*out1++;
*out2++;
}
- fpNShapeL *= 0.999999;
- fpNShapeR *= 0.999999;
- //we will just delicately dial back the FP noise shaping, not even every sample
- //this is a good place to put subtle 'no runaway' calculations, though bear in mind
- //that it will be called more often when you use shorter sample buffers in the DAW.
- //So, very low latency operation will call these calculations more often.
}
diff --git a/plugins/MacVST/uLawEncode/uLawEncode.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/uLawEncode/uLawEncode.xcodeproj/christopherjohnson.pbxuser
index 37fd5e3..4382acd 100755
--- a/plugins/MacVST/uLawEncode/uLawEncode.xcodeproj/christopherjohnson.pbxuser
+++ b/plugins/MacVST/uLawEncode/uLawEncode.xcodeproj/christopherjohnson.pbxuser
@@ -49,8 +49,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 561241903;
- PBXWorkspaceStateSaveDate = 561241903;
+ PBXPerProjectTemplateStateSaveDate = 569773438;
+ PBXWorkspaceStateSaveDate = 569773438;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
diff --git a/plugins/MacVST/uLawEncode/uLawEncode.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/uLawEncode/uLawEncode.xcodeproj/christopherjohnson.perspectivev3
index 01f5c6f..6742d70 100755
--- a/plugins/MacVST/uLawEncode/uLawEncode.xcodeproj/christopherjohnson.perspectivev3
+++ b/plugins/MacVST/uLawEncode/uLawEncode.xcodeproj/christopherjohnson.perspectivev3
@@ -469,11 +469,11 @@
</array>
<key>TableOfContents</key>
<array>
- <string>8B2721BE2173DF3C00396442</string>
+ <string>8B79428E21F60D86006E9731</string>
<string>1CA23ED40692098700951B8B</string>
- <string>8B2721BF2173DF3C00396442</string>
+ <string>8B79428F21F60D86006E9731</string>
<string>8B0237581D42B1C400E1E8C8</string>
- <string>8B2721C02173DF3C00396442</string>
+ <string>8B79429021F60D86006E9731</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@@ -626,7 +626,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>561241916.28170097</real>
+ <real>569773446.35580504</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@@ -643,7 +643,6 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>8B2721C12173DF3C00396442</string>
<string>/Users/christopherjohnson/Desktop/MacVST/uLawEncode/uLawEncode.xcodeproj</string>
</array>
<key>WindowString</key>