<< >>
justin = { main feed , music , code , askjf , pubkey };recent comments
search
[ present ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... past ]
November 23, 2015
gouache



Recordings:

the thingy again

Comment...


November 22, 2015
a day's work

coming soon:



Recordings:

cory - 1 -- [8:47]
cory - 2 -- [6:01]
cory - 3 -- [3:31]
cory - 4 -- [6:32]
cory - 5 -- [9:13]
cory - 6 -- [10:12]
cory - 7 -- [12:45]
cory - 8 -- [24:54]
cory - 9 -- [6:41]
cory - 10 -- [9:32]
cory - 11 -- [14:50]
cory - 12 -- [3:53]
cory - 13 -- [5:01]

1 Comment


November 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


November 19, 2015
drink 'n draw



Recordings:

in the bucket

Comment...


November 18, 2015
Music
a level revelation
getting through the winter


November 17, 2015
gouache cock



Comment...


November 15, 2015
watercolor whaaat



Comment...


November 14, 2015
Music
cory - 1 -- [3:11]
cory - 2 -- [3:25]
cory - 3 -- [5:15]
cory - 4 -- [12:31]
cory - 5 -- [2:50]
cory - 6 -- [7:55]
cory - 7 -- [7:23]
cory - 8 -- [5:55]
cory - 9 -- [6:24]
cory - 10 -- [16:32]
cory - 11 -- [5:06]
cory - 12 -- [4:26]
cory - 13 -- [3:28]
cory - 14 -- [10:11]
cory - 15 -- [5:35]
cory - 16 -- [6:27]


November 13, 2015
gouache gouache gouache



Recordings:

monster with your name on it
the day is long
unfortunate first

Comment...


November 13, 2015
gouache gouache gouache



Comment...


November 11, 2015
monotype prints



Recordings:

the messy return of an old friend
the plan for recording

Comment...


November 11, 2015
monotype prints



Comment...


November 11, 2015
gouache 'n stuff



Comment...


November 11, 2015
gouache 'n stuff



Comment...


November 11, 2015
gouache 'n stuff



Comment...


November 9, 2015
drawing markers with children



Comment...


October 30, 2015
drink 'n drag 'n draw acrylic on paper

quantity.

retroactively posted Nov 2015

1 Comment


[ present ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... past ]
search : rss : recent comments : Copyright © 2024 Justin Frankel