<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[ChipMusic.org - Coding a tracker: Where to start?]]></title>
		<link>https://chipmusic.org/forums/topic/9740/coding-a-tracker-where-to-start/</link>
		<description><![CDATA[The most recent posts in Coding a tracker: Where to start?.]]></description>
		<lastBuildDate>Sun, 06 Jan 2013 22:59:20 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149483/#p149483</link>
			<description><![CDATA[<b><i>4mat says:</i></b><p>In my experience, if you&#039;ve never written a sound driver before write that first.&nbsp; &nbsp;Either way, writing the driver first is the best idea because everything you&#039;ll want the UI to read/write can be got working in source, before you even start on the front-end.&nbsp; &nbsp;Coding a tracker is 95% ui and 5% driver (like the old &quot;1% inspiration and 99% perspiration&quot;).&nbsp; You might end up writing the driver, be happy enough editing music in the source and not even get to the UI part.&nbsp; (that&#039;s how most of mine have turned out at least)</p><p>Failing that, adapting an existing driver with a friendlier interface could be a happy exercise.&nbsp; There are <a href="http://csdb.dk/release/?id=75124" target="_blank">plenty</a> <a href="http://csdb.dk/release/?id=66495" target="_blank">of</a> <a href="http://csdb.dk/release/?id=75436" target="_blank">those</a> around on the c64, for example.</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 22:59:20 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149483/#p149483</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149481/#p149481</link>
			<description><![CDATA[<b><i>ant1 says:</i></b><p>if you want to make one for an old system it is pretty much imperative that you learn assembly language for that system</p><p>if you want to make one for modern PCs then C or C++ is probably most appropriate. it takes quite a while to learn how to program if you have never done it before (and &quot;making a tracker&quot; isnt really a suitable beginners project sadly <img src="https://chipmusic.org/forums/img/smilies/sad.png" width="15" height="15" alt="sad" /> )</p><br /><p>edit: if you want to do PC i think the best library to use should be SDL... milkytracker, schismtracker, piggy, etc all use it and it handles everything you really need for sound and graphics on windows/linux/mac/more, it is a C library (will work with C++): <a href="http://www.libsdl.org/" target="_blank">http://www.libsdl.org/</a></p>]]></description>
			<pubDate>Sun, 06 Jan 2013 22:41:32 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149481/#p149481</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149475/#p149475</link>
			<description><![CDATA[<b><i>gwEm says:</i></b><p>coding maxYMiser was a big struggle. all the GUI/editing feature coding etc was very dull. it took more a less a year of all my spare time to write the first version.</p><p>at the time i regretted spending so much effort, but now i don&#039;t see it that way and am very happy with the results. i would definitely encourage anyone to write a tracker! but it is more work than it may se.</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 22:20:04 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149475/#p149475</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149393/#p149393</link>
			<description><![CDATA[<b><i>xylo says:</i></b><p>Milky is opensource. You could learn references and structure and try some of your own.</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 13:00:40 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149393/#p149393</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149387/#p149387</link>
			<description><![CDATA[<b><i>boomlinde says:</i></b><p>Not exactly a tracker, but I have some barely readable code for a sequencer/fm synth with a JACK backend and a Curses frontend <a href="https://bitbucket.org/boomlinde/dx303/src" target="_blank">here.</a></p>]]></description>
			<pubDate>Sun, 06 Jan 2013 11:04:02 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149387/#p149387</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149365/#p149365</link>
			<description><![CDATA[<b><i>breakphase says:</i></b><div class="quotebox"><cite>egr wrote:</cite><blockquote><p>What about using Pure Data or Max? Not lightweight enough or ...? I believe both of those have options to export as a standalone application. Might be a way to jumpstart your progress at least.</p></blockquote></div><p>It would certainly work for the sound engine. I believe that libpd let&#039;s you embed PD patches in executable files. Its still a bit experimental. In the long run it may be better just to learn how to do it yourself.</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 02:55:39 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149365/#p149365</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149356/#p149356</link>
			<description><![CDATA[<b><i>egr says:</i></b><p>What about using Pure Data or Max? Not lightweight enough or ...? I believe both of those have options to export as a standalone application. Might be a way to jumpstart your progress at least.</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 02:01:14 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149356/#p149356</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149353/#p149353</link>
			<description><![CDATA[<b><i>yoyz2k says:</i></b><p>Ok guys, I had some of the same question last years and I have dig the Internet for you <img src="https://chipmusic.org/forums/img/smilies/wink.png" width="15" height="15" alt="wink" /></p><p>For me the best way to start was reading some simple code and try to understand them.<br />One that was really helpfull was taken here : <a href="http://olofson.net/mixed.html" target="_blank">http://olofson.net/mixed.html</a><br />DT42 is a drum tracker which work with 3000 line of C using sdl.<br />It is not easy and well written but it contain :<br />- a nice sdl GUI ;<br />- a load save function ;<br />- a structure to store the song ;<br />- sample instrument : just trig ;<br />- a really basic synth&nbsp; but well written and great to understand ;</p><p>There is also a minimal version without the GUI which take 1000 line of C, it&#039;s a strip down version of DT42. This guy has done a really good tutorial for anyone IMHO.</p><p>If you plan to write a tracker I think you should learn how to write&nbsp; :<br />- a waveform generator ;<br />- a minimal sound mixer ;<br />- a pattern player with an audio engine ;</p><p>I&#039;m not an expert in this area, I just begin to code a minimal player.<br />It play wave but the audio engine is not really perfect.</p><p>it&#039;s well written I think but I am a noob in waveform generation so i get broken c++ code.<br />It works I can generate sawtooth wave <img src="https://chipmusic.org/forums/img/smilies/smile.png" width="15" height="15" alt="smile" /> and I enjoy it.<br />I can&#039;t get a decent sine wave, i don&#039;t understand the full stuff...</p><p>Good to see there are people out there which write code, i enjoy this <img src="https://chipmusic.org/forums/img/smilies/smile.png" width="15" height="15" alt="smile" /></p><p>And hope this will help you to begin.</p><p>Johann</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 01:52:19 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149353/#p149353</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149352/#p149352</link>
			<description><![CDATA[<b><i>Shiru says:</i></b><p>A tracker is basically consist two very different parts: UI, which is normally a larger one, and sound code. They aren&#039;t overlap too much, so you may start to learn how to do them separately, then combine them into one fully functional thing.</p><p>Sound part takes data in some format, interprets it, then plays somehow, sort of through virtial low level commands. If it is a cross tracker, it produces register data for emulated chip, if it is a sample based one, it produced commands like start sample, stop, change channel pitch, change volume. In my opinion, easiest way to learn how to make sound part for a cross tracker is to write a simple VGM format player, the one that is for Sega Master System - the format is very simple, the chip is very simple, so you can easily write your own emulator, and get all kinds of ideas how the stuff work.</p><p>UI part of a tracker is kind of specialized text editor that implies certain limitations on the input. You may make one that will just produce a text file formated in certain way. You may start from a N-column editor that allows to enter numbers into each column, navigate, copy/paste, etc.</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 01:51:14 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149352/#p149352</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149347/#p149347</link>
			<description><![CDATA[<b><i>Theta_Frost says:</i></b><p>I&#039;d be interested to hear more opinions on this too.&nbsp; I&#039;ve got an alright background in Java and I don&#039;t really see how to make the jump to programming for sound.</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 00:54:12 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149347/#p149347</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149346/#p149346</link>
			<description><![CDATA[<b><i>Delek says:</i></b><p>Personal opinion:</p><p>A tracker don&#039;t have any specials stuff to code, for that reason you will never find a &quot;programming a tracker tutorial&quot; as you find &quot;programming a platform game&quot;.<br />You have to learn how to output sound, how to make a button, how to capture the keyboard and the sum of that could be a tracker if your knowledge was correctly acquired.</p><p>Personally I learned how to make all of that stuff in different things that I did in the past (dOb Engine, Brilek, NES programming, Amiga programming, blah, blah, etc, etc, etc), then programming DefleMask was only start to code it.</p><p>So, for short I recommend you to start coding simple apps: output a sine wave, create buttons, etc, etc. After that a tracker could pop up at anytime.</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 00:32:58 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149346/#p149346</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149345/#p149345</link>
			<description><![CDATA[<b><i>Saskrotch says:</i></b><p>Both</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 00:32:37 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149345/#p149345</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149343/#p149343</link>
			<description><![CDATA[<b><i>breakphase says:</i></b><p>Oooh, interesting topic.&nbsp; Famitracker is open source too. Are you making a synthesizer or just a sampler?</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 00:21:40 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149343/#p149343</guid>
		</item>
		<item>
			<title><![CDATA[Re: Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149341/#p149341</link>
			<description><![CDATA[<b><i>irrlichtproject says:</i></b><p>i have yet to find a good manual/tutorial for that - so i&#039;d welcome some pointers, too.</p><p>got one for you: maybe you&#039;d want to have a look at the source code for shiru&#039;s 1tracker - <a href="http://shiru.untergrund.net/files/src/1tracker_src.zip" target="_blank">http://shiru.untergrund.net/files/src/1tracker_src.zip</a> </p><p>it&#039;s for windows though, haven&#039;t got it to build on linux yet, though some people supposedly have <a href="http://shiru.untergrund.net/1bit/pivot/entry.php?id=194#comm" target="_blank">http://shiru.untergrund.net/1bit/pivot/ &#133; d=194#comm</a></p><p>good luck xD</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 00:09:35 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149341/#p149341</guid>
		</item>
		<item>
			<title><![CDATA[Coding a tracker: Where to start?]]></title>
			<link>https://chipmusic.org/forums/post/149339/#p149339</link>
			<description><![CDATA[<b><i>Saskrotch says:</i></b><p>I&#039;m kind of interested in trying to make a chip tracker, but I have no idea where to start (googling creating/coding a music tracker mostly results in &quot;how to create/code music using a tracker program&quot;), I figured there were at least a couple people here that could point me in the right direction. </p><p>i don&#039;t want to give too much away incase i actually manage to make this thing, but: i&#039;m not looking to make a console native tracker, or even a windows tracker that exports to a file format (at least not yet), so that might help with getting started. </p><p>thanks in advance</p>]]></description>
			<pubDate>Sun, 06 Jan 2013 00:01:06 +0000</pubDate>
			<guid>https://chipmusic.org/forums/post/149339/#p149339</guid>
		</item>
	</channel>
</rss>
