Skip to content

Commit fb64b7f

Browse files
authored
Playback track (#509)
* Add playback track data to song * Extend local_file_mgr to write playbacktrack data * Added basic core functionality to process audio from playback track * Resize WaveDisplay Widget properly * Make WaveDisplay more generic to use it for playback track * Workaround: Include playback track commands in menus until gui is final * Create a very basic playback track visualization (kills timeline..) * Implement resampling for playback track * WaveDisplay update * SongEditorPanel: Use buttons to switch between TimeLine and PlaybackTrack * Removed old and unnecessary comments from SongEditorPanel * Some reformatting of old SongEditorPanel code * Hide BPM button if PlaybackTrack is shown * Hide BPM button if PlaybackTrack is shown (Part II) * Add buttons to switch between PlaybackTrack and Timeline * Use new View Timeline/View Playback Track buttons in SongEditor * Add playback track mute button * Add Edit playback track button * Introduce vertical fader * Sampler: Update playback track peaks * Remove bpm button from bg_topPanel * Save and restore playback track volume * WaveDisplay: rename member m_background * SongEditor: Show playback track peaks * SongEditor code cleanup * Make use of playback track volume in sampler.cpp * Remove useless code in SongEditorPanel::faderChanged * Remove menu entry to select playback track (can now done via button) * Remove playback track related menu items * Remove debug output from vertical fader
1 parent a313532 commit fb64b7f

File tree

24 files changed

+782
-95
lines changed

24 files changed

+782
-95
lines changed
-337 Bytes
Loading
2.98 KB
Loading
434 Bytes
Loading
3.03 KB
Loading
2.95 KB
Loading
404 Bytes
Loading
2.97 KB
Loading

src/core/include/hydrogen/basics/instrument.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
#define EMPTY_INSTR_ID -1
3232
#define METRONOME_INSTR_ID -2
33+
#define PLAYBACK_INSTR_ID -3
3334

3435
namespace H2Core
3536
{

src/core/include/hydrogen/basics/song.h

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*
1+
/*
22
* Hydrogen
33
* Copyright(c) 2002-2008 by Alex >Comix< Cominu [[email protected]]
44
*
@@ -219,6 +219,27 @@ class Song : public H2Core::Object
219219
__latest_round_robins[start_velocity] = latest_round_robin;
220220
}
221221

222+
QString& get_playback_track_filename(){
223+
return __playback_track_filename;
224+
}
225+
void set_playback_track_filename( QString filename ){
226+
__playback_track_filename = filename;
227+
}
228+
229+
bool get_playback_track_enabled(){
230+
return __playback_track_enabled;
231+
}
232+
void set_playback_track_enabled( bool enabled ){
233+
__playback_track_enabled = enabled;
234+
}
235+
236+
float get_playback_track_volume(){
237+
return __playback_track_volume;
238+
}
239+
void set_playback_track_volume( float volume ){
240+
__playback_track_volume = volume;
241+
}
242+
222243

223244
private:
224245
float __volume; ///< volume of the song (0.0..1.0)
@@ -236,6 +257,9 @@ class Song : public H2Core::Object
236257
bool __is_modified;
237258
std::map< float, int> __latest_round_robins;
238259
SongMode __song_mode;
260+
QString __playback_track_filename;
261+
bool __playback_track_enabled;
262+
float __playback_track_volume;
239263
AutomationPath* __velocity_automation_path;
240264
};
241265

src/core/include/hydrogen/hydrogen.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,12 @@ class Hydrogen : public H2Core::Object
237237

238238
CoreActionController* getCoreActionController() const;
239239

240+
///playback track
241+
void setPlaybackTrackState(bool);
242+
bool getPlaybackTrackState();
243+
void loadPlaybackTrack(QString filename);
244+
245+
240246
///midi lookuptable
241247
int m_nInstrumentLookupTable[MAX_INSTRUMENTS];
242248

@@ -317,6 +323,20 @@ inline void Hydrogen::setCurrentDrumkitname( const QString& currentdrumkitname )
317323
this->m_currentDrumkit = currentdrumkitname;
318324
}
319325

326+
inline bool Hydrogen::getPlaybackTrackState()
327+
{
328+
Song* pSong = getSong();
329+
bool bState;
330+
331+
if(!pSong){
332+
bState = false;
333+
} else {
334+
bState = pSong->get_playback_track_enabled();
335+
}
336+
return bState;
337+
}
338+
339+
320340
};
321341

322342
#endif

0 commit comments

Comments
 (0)