<< >>
justin = { main feed , music , code , askjf , social , pubkey };recent comments
search
[ present ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... past ]
Nov 22 2015
a day's work

coming soon:



1 Comment


Nov 20, 2015
ah, 10 years

I have spent about 27% of my life programming REAPER! That's not entirely true -- I've done other things in the last 10 years, like eating and occasionally sleeping, but you get the idea. It is, by a huge margin, the longest I've worked on anything, ever*. Happy days.

Here is a commit from today's date, around this time, in 2005. Most of the changes did not survive the decade, but the files still exist at least.


commit 64bd59b56fb4edac13d264a516d194aa9715a09d
Author: Justin <justin@localhost>
Date:   Sun Nov 20 18:51:40 2005 +0000

diff --git a/jmde/mediaitem.h b/jmde/mediaitem.h
index 8fbc575..c272d1d 100644
--- a/jmde/mediaitem.h
+++ b/jmde/mediaitem.h
@@ -4,23 +4,47 @@
 #include "pcmsrc.h"
 #include "../WDL/string.h"
 
+#define SOURCE_TYPE_MEDIAITEM 0x1000
 
 #define WM_USER_RESIZECHILD (WM_USER+1020)
 
-class MediaItem 
+class MediaItem : public PCM_source
 {
 public:
   MediaItem();
-  ~MediaItem() { delete m_src; }
+  virtual ~MediaItem() { delete m_src; }
 
-  int GetNumChannels() { return m_src?m_src->GetNumChannels():0; }
-  int PropertiesWindow(HWND hwndParent) { return -1; } // todo: properties window
+  virtual PCM_source *Duplicate()
+  {
+    MediaItem *ni=new MediaItem;
+
+    ni->m_position=m_position;
+    ni->m_length=m_length;
+    ni->m_startoffs=m_startoffs;
+    ni->m_loop=m_loop;
+    ni->m_fade_in_len = m_fade_in_len;
+    ni->m_fade_out_len = m_fade_out_len;
+    ni->m_fade_in_shape = m_fade_in_shape;
+    ni->m_fade_out_shape = m_fade_out_shape;
+    ni->m_name.Set(m_name.Get());
+    ni->m_src = m_src ? m_src->Duplicate() : 0;
+    ni->m_volume=m_volume;
+    ni->m_pan=m_pan;
+    ni->m_ui_sel = m_ui_sel;
+
+    return ni;
+  }
+
+  virtual int GetNumChannels() { return m_src?m_src->GetNumChannels():0; }
+  virtual int PropertiesWindow(HWND hwndParent) { return -1; } // todo: properties window
 
   // times passed to these should be global time, i.e. area not relative to m_position
   // should handle out-of-bounds, too, and just return silence for those regions
-  void GetSamples(PCM_source_transfer_t *block);
-  void GetPeakInfo(PCM_source_peaktransfer_t *block);
+  virtual void GetSamples(PCM_source_transfer_t *block);
+  virtual void GetPeakInfo(PCM_source_peaktransfer_t *block);
 
+  virtual double GetLength() { return m_length; }
+  virtual int GetType() { return SOURCE_TYPE_MEDIAITEM; }
 
   double m_position;
   double m_length;
@@ -30,8 +54,6 @@ public:
   double m_fade_in_len, m_fade_out_len;
   int m_fade_in_shape, m_fade_out_shape; // shape 0 = linear, ...
 
-  double m_volume, m_pan;
-
   WDL_String m_name;
 
   PCM_source *m_src;
diff --git a/jmde/pcmsrc.h b/jmde/pcmsrc.h
index 5a904ac..abe3a3e 100644
--- a/jmde/pcmsrc.h
+++ b/jmde/pcmsrc.h
@@ -81,6 +81,8 @@ class PCM_section_source : public PCM_source
     virtual PCM_source *Duplicate() 
     {      
       PCM_section_source *ns=new PCM_section_source;
+      ns->m_volume=m_volume;
+      ns->m_pan=m_pan;
       ns->SetSource(m_src?m_src->Duplicate():0,m_startpos,m_length,m_edgeoverlap_time);
       return ns;
     }
@@ -131,6 +133,8 @@ class PCM_mixing_source : public PCM_source
     virtual PCM_source *Duplicate() 
     {
       PCM_mixing_source *ns=new PCM_mixing_source;
+      ns->m_volume=m_volume;
+      ns->m_pan=m_pan;
 
       int x;
       for (x = 0; x < m_channels.GetSize(); x ++)
@@ -174,6 +178,8 @@ class PCM_source_wavefile : public PCM_source
     virtual PCM_source *Duplicate()
     {
       PCM_source_wavefile *ns=new PCM_source_wavefile;
+      ns->m_volume=m_volume;
+      ns->m_pan=m_pan;
       ns->Open(m_filename.Get());
       return ns;
     }

* Most of my projects have a lifespan measured in minutes, sometimes exceeding an hour.

5 Comments


Nov 19 2015
Music
in the bucket


Nov 19 2015
drink 'n draw



Comment...


Nov 18 2015
Music
getting through the winter
a level revelation


Nov 17 2015
gouache cock



Comment...


Nov 15 2015
watercolor whaaat



Comment...


Nov 13 2015
Music
unfortunate first
the day is long
monster with your name on it


Nov 13 2015
gouache gouache gouache



Comment...


Nov 13 2015
gouache gouache gouache



Comment...


Nov 11 2015
Music
the plan for recording
the messy return of an old friend


Nov 11 2015
monotype prints



Comment...


Nov 11 2015
monotype prints



Comment...


Nov 11 2015
gouache 'n stuff



Comment...


Nov 11 2015
gouache 'n stuff



Comment...


Nov 11 2015
gouache 'n stuff



Comment...


Nov 09 2015
drawing markers with children



Comment...


Oct 30 2015
drink 'n drag 'n draw acrylic on paper

quantity.

retroactively posted Nov 2015

1 Comment


Oct 29 2015
Music
neglect of the human condition
make it rain


Oct 27 2015
Music
various northern influence


Oct 26 2015
Music
the sound of ones voice
moon fucker
bloop


Oct 23 2015
Music
urfect


Oct 22 2015
drink 'n monotype print

retroactively posted Nov 2015

1 Comment


[ present ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... past ]
search : rss : recent comments : Copyright © 2017 Justin Frankel